Slide 9
Slide 9 text
TypeScript
が採用している構造的部分型
型の名前で互換性を判定する
以下は Java
の例
// Java
record Animal(
String name
) {}
record Human(
String name,
int age
) {}
Animal animal = new Human("kosui", 29);
// ^^^^^^^^^^^^^^^^^^^^^^
// Incompatible types...
オブジェクトの構造で互換性を判定する
記述量を抑えつつ型システムの恩恵を得られる
// TypeScript
type Animal = {
name: string;
};
const human = {
name: "kosui",
age: 29,
};
const animal: Animal = human;
// `human`
がAnimal
を継承しなくてもビルドが通る
名前的部分型 (
公称的部分型)
構造的部分型
9
9