声明合并
- 成员变量合并:成员变量会合并,但类型必须一致。
- 成员函数合并:如果函数签名不同,合并后的函数会是签名的联合类型。
- 接口声明顺序:在同一个接口内按顺序合并;不同接口时,后声明的会覆盖前声明的。
- 函数字面量优先级:如果有函数字面量,它们会优先合并。
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,
};