4章関数

前の章では、TypeScriptの型システムの基礎を学びました。プリミティブ型、オブジェクト、配列、タプル、列挙型について学び、そのほかにTypeScriptの型推論の基礎と、型の割り当て可能性がどのように機能するかについて学びました。これで、TypeScriptのメインディッシュ(関数型プログラマーにとっては存在理由)である「関数」へと進む準備ができました。この章で取り上げるテーマは次のようなものです。

  • TypeScriptでの関数の宣言方法と呼び出し方法
  • シグネチャのオーバーロード
  • 関数についてのポリモーフィズム
  • 型エイリアスについてのポリモーフィズム

4.1 関数の宣言と呼び出し

JavaScriptでは、関数は第一級のオブジェクトです。そのため、他のオブジェクトとまったく同じように扱うことができます。それらを変数に割り当てたり、他の関数に渡したり、関数から返したり、オブジェクトやプロトタイプに割り当てたり、それらにプロパティを追加したり、それらのプロパティを読み取ったり、といったことができます。JavaScriptでは関数を使って行えることがたくさんあり、TypeScriptはそのすべてのものを、豊富な型システムを使って実現します。

TypeScriptでの関数の例を見てみましょう。

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

通常は、関数のパラメーター(この例ではab)を明示的にアノテートします(パラメーターの型を明示的に指定します)。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.