June 2023
Intermediate to advanced
336 pages
4h 39m
Japanese
Variables you
declare in the type system?
A whole new (typed) world!
型システムの中で
宣言する変数?
まったく新しい(型付けされた)世界!
……………………………………………………
これまで学んできたすべての型の構文は、それが書かれた時点でコードの扱う型がわかっていることを想定しています。しかし、コードの一部分が、どのように呼び出されたかによって、さまざまな異なる型を扱うことを意図している場合もあります。
次に示すJavaScriptのidentity関数を考えてみましょう。この関数は、任意の型の入力を受け取り、それをそのまま出力として返すことを意図したものです。この関数のパラメーターの型と戻り値の型をどのように表現したらよいでしょうか?
functionidentity(input){returninput;}identity("abc");identity(123);identity({quote:"I think your self emerges more clearly over time."});
inputをany型と宣言することはできますが、そうすると、関数の戻り値の型もanyになってしまいます。
functionidentity(input:any){returninput;}letvalue=identity(42);// valueの型:any
inputがどんな値でも受け入れるとしたら、inputの型と関数が返す型の関係を表現する方法が必要です。TypeScriptでは、ジェネリック(generics)を使って、型同士の関係を表現します。 ...