MST

星途 面试题库

面试题:TypeScript中接口声明合并的基础规则考查

请阐述TypeScript中接口声明合并时,同名接口属性的合并规则,并举例说明。例如,当两个同名接口都有一个同名的属性,但类型不同时会怎样处理?
18.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

在TypeScript中,同名接口声明合并时,同名属性的合并规则如下:

  1. 属性类型相同:合并后的接口保持该属性,类型不变。 例如:
interface User {
  name: string;
}
interface User {
  name: string;
}
// 合并后User接口为
// interface User {
//   name: string;
// }
  1. 属性类型不同(且不是函数类型):会报错。 例如:
interface User {
  age: number;
}
interface User {
  age: string; // 报错,不能创建重复成员,且类型不兼容
}
  1. 属性为函数类型:会创建一个函数重载列表。 例如:
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;
// }