#9 TypeScriptで学ぶ関数の基本

TypeScriptの関数は、JavaScriptの書き方に加えて、引数と戻り値の型を明示できるのが特徴です。この記事では、TypeScriptにおける関数の基本と、実務でよく使う書き方を解説します。

型を付けた関数

function add(a: number, b: number): number {
    return a + b;
}

引数の後ろに型を書き、かっこの後ろに戻り値の型を書きます。

アロー関数でも型を付けられる

const add = (a: number, b: number): number => a + b;

戻り値の型は省略できる

TypeScriptには型推論があるため、戻り値の型は多くの場合省略できます。

function add(a: number, b: number) {
    return a + b; // 戻り値の型はnumberと自動推論される
}

省略できる引数を作る

必須ではない引数には、型の後ろに?を付けます。

function greet(name: string, honorific?: string) {
    console.log(`こんにちは、${name}${honorific ?? "さん"}`);
}

greet("太郎");        // こんにちは、太郎さん
greet("太郎", "様");  // こんにちは、太郎様

?を付けた引数は、指定しない場合undefinedになります。デフォルト値をあらかじめ決めておきたい場合は、honorific: string = "さん"のように書くこともできます。

関数の型そのものを定義する

「こういう引数を受け取り、こういう値を返す関数」という形そのものに、名前を付けて再利用することもできます。

type Calculator = (a: number, b: number) => number;

const add: Calculator = (a, b) => a + b;
const multiply: Calculator = (a, b) => a * b;

コールバック関数を引数として受け取る場合など、関数の「形」を先に決めておきたい場面で役立ちます。

TypeScriptならではの注意点

引数に型を付けておくと、関数を呼び出す側で間違った型の値を渡そうとした際に、実行前の段階でエラーとして教えてもらえます。これは、JavaScriptでは実行するまで気づけなかった間違いを早期に発見できる、TypeScriptの大きな利点です。特に省略可能な引数(?付き)はundefinedになりうるため、関数内で使う前にチェックを忘れないようにしましょう。

まとめ

TypeScriptの関数はJavaScriptと同じ書き方に、型注釈が加わったものです。引数の型は明示し、戻り値の型は型推論に任せる、という使い分けがよく行われます。?による省略可能な引数や、関数の型定義も活用していきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

TypeScriptをもっと学びたい方には「プロを目指す人のためのTypeScript入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本