面试题答案
一键面试在TypeScript中,同名接口声明合并时,同名属性的合并规则如下:
- 属性类型相同:合并后的接口保持该属性,类型不变。 例如:
interface User {
name: string;
}
interface User {
name: string;
}
// 合并后User接口为
// interface User {
// name: string;
// }
- 属性类型不同(且不是函数类型):会报错。 例如:
interface User {
age: number;
}
interface User {
age: string; // 报错,不能创建重复成员,且类型不兼容
}
- 属性为函数类型:会创建一个函数重载列表。 例如:
interface MathOperation {
(a: number, b: number): number;
}
interface MathOperation {
(a: string, b: string): string;
}
// 合并后MathOperation接口为
// interface MathOperation {
// (a: number, b: number): number;
// (a: string, b: string): string;
// }