声明合并
- 成员变量合并:成员变量会合并,但类型必须一致。
- 成员函数合并:如果函数签名不同,合并后的函数会是签名的联合类型。
- 接口声明顺序:在同一个接口内按顺序合并;不同接口时,后声明的会覆盖前声明的。
- 函数字面量优先级:如果有函数字面量,它们会优先合并。
interface Person {
name: string;
}
interface Person {
age: number;
}
interface Person {
age: string;
}
interface Person {
greet(name: string): void;
}
interface Person {
greet(age: number): number;
}
const person: Person = {
greet(nameOrAge: string | number): number {
return 0;
},
};
interface Person {
name: string;
}
interface Person {
age: number;
}
const person: Person = {
name: 'Alice',
age: 25,
};