#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿