構造的部分型
structural subtyping
データ型の構造を見る部分型
オブジェクト型が構造的部分型。
code:ts
class Obj {
name: string;
constructor(name: string) {
this.name = name;
}
}
interface Obj2 {
name: string;
age: number;
}
const obj2: Obj2 = { name: "ange", age: 17 };
const obj: Obj = obj2;
function nameOf(obj: Obj) {
return obj.name;
}
nameOf(obj2); // Obj型のインスタンスと同じくstringのnameを持っているのでObj型
nameOf(new Obj("charlotte")); // ObjクラスのインスタンスはもちろんObj型