Open hro19 opened 1 year ago
type MyObj = { foo: string; bar: number; } type MyObj2 = { foo: string; } const aaa: MyObj = {foo: 'foo', bar: 3}; //cccは正しく代入することができない const ccc: MyObj2 = {foo: 'foo', bar: 3}; console.log(ccc); //bbbは正しく代入することができる //TypeScriptでは構造的部分型を採用しているため、次のようなことが可能です const bbb: MyObj2 = aaa; console.log(bbb);
異なる二つの型システム
それぞれに継承関係があれば互換性があるとみなす。 Java, PHP
それぞれの構造をチェックし、それが一致すれば両者には互換性があるとみなす。 TypeScript, Go
TypeScriptの構造的部分型をアニメ「NARUTO」で説明する TypeScript の構造的部分型とプリミティブ型について