5章関数

Function arguments

In one end, out the other

As a return type

関数の引数

一方から入って、もう一方から出ていく

戻り値の型として

……………………………………………………

 

2章 型システム」では、変数の型を指定する型アノテーションの使い方を学びました。ここでは、関数のパラメーターと戻り値の型について同じことを行う方法——および、それが役に立つ理由——を学びます。

5.1 関数のパラメーター

次のようなsing関数を考えてみましょう。この関数はsongパラメーターを受け取り、それをログに出力します。

function sing(song) {
  console.log(`Singing: ${song}!`);
}

このsing関数を書いた開発者は、songパラメーターに、どのような型の値が渡されることを意図したのでしょうか?

stringでしょうか? オーバーライドされたtoString()メソッドを持つオブジェクトでしょうか? それとも、このコードにはバグがあるのでしょうか? 誰にもわかりません!

明示的に宣言された型情報がなければ、決してわかりません。TypeScriptはこれをany型と見なします。パラメーターの型は何でも構わないということです。

変数と同様に、TypeScriptでは、型アノテーションを使って関数パラメーターの型を宣言できます。次のように「: string」を使って、songパラメーターがstring型であることをTypeScriptに伝えられます。

function sing(song: string) {
  console.log(`Singing: ${song}!` ...

Get 初めてのTypeScript ―型安全なJavaScriptでWeb開発を加速する 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.