TypeScript
型引数
Tの部分が型引数。型引数は宣言の中だけで有効
type User<A> = {
name: string;
Address: A;
}
// 型引数は複数指定することもできる
type Admin<A, P> = {
Position: P;
Address: A;
}
extendsによる型引数の制約
extendsの後ろに指定した型が前に指定した型引数の部分型になる
type HasName = {
name: string;
}
type Cat = {
//...
}
type Dog = {
//...
}
type Pet<Cat extends HasName, Dog extends HasName> = {
cat: Cat;
dog: Dog;
// ....
}