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