4章関数
前の章では、TypeScriptの型システムの基礎を学びました。プリミティブ型、オブジェクト、配列、タプル、列挙型について学び、そのほかにTypeScriptの型推論の基礎と、型の割り当て可能性がどのように機能するかについて学びました。これで、TypeScriptのメインディッシュ(関数型プログラマーにとっては存在理由)である「関数」へと進む準備ができました。この章で取り上げるテーマは次のようなものです。
- TypeScriptでの関数の宣言方法と呼び出し方法
- シグネチャのオーバーロード
- 関数についてのポリモーフィズム
- 型エイリアスについてのポリモーフィズム
4.1 関数の宣言と呼び出し
JavaScriptでは、関数は第一級のオブジェクトです。そのため、他のオブジェクトとまったく同じように扱うことができます。それらを変数に割り当てたり、他の関数に渡したり、関数から返したり、オブジェクトやプロトタイプに割り当てたり、それらにプロパティを追加したり、それらのプロパティを読み取ったり、といったことができます。JavaScriptでは関数を使って行えることがたくさんあり、TypeScriptはそのすべてのものを、豊富な型システムを使って実現します。
TypeScriptでの関数の例を見てみましょう。
function add(a: number, b: number) { return a + b }
通常は、関数のパラメーター(この例ではa
とb
)を明示的にアノテートします(パラメーターの型を明示的に指定します)。TypeScriptは、関数の本体全体を通じて常に型を推論しますが、文脈から型を推論できるいくつかの特別なケース(詳しくは「4.1.8 文脈的型付け」を参照)を除いて、多くの場合、パラメーターについては型を推論しません。戻り値の型については推論しますが、希望すれば、これも明示的にアノテートすることができます。 ...
Get プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.