はじめに
TypeScript Deep Diveを読み学習したことを残します。
普段の開発では主にPHPを使っていますが、ジェネリクスという概念がPHPにはなく、どういったものなのか備忘録を兼ねて投稿します。
ジェネリクスとは
クラスのインスタンスメンバや、関数の引数や戻り値などに、型の制約を設けるためのパラメータを指定できる機能です。
引数に渡した配列の1つを返す shift
関数を例にすると、以下のように記述します。
// <T> の部分がジェネリクス。
function shift<T>(items: T[]): T {
return items[0];
}
どういったメリットがあるのか
上記の shift
関数では、引数と戻り値の型を強制できます。
// <T> の部分がジェネリクス。引数に渡した配列の1つを返す。
function shift<T>(items: T[]): T {
return items[0];
}
let num = shift([1, 2, 3]); // num は number 型
let str = shift(['one', 'two', 'three']); // str は string 型
num.replace(); // Error
str.toFixed(); // Error
まとめ
以上、ジェネリクスについてでした。
ジェネリックを使ったデザインパターンについても色々テクニックがありそうですので、いずれ記事を投稿したいと思います。