声明类型是:如果定义了多个相同名的函数、接口或类,那么他们的类型会合并成一个类型

1 函数声明合并

在前面的函数的重载中,知道可以利用函数的重载定义多个函数类型,并获得友好提示:

  1. function reverse(input: number): number; // 重载1
  2. function reverse(input: string): string; // 重载2
  3. // 具体实现
  4. function reverse(input: number | string): number | string {
  5. if(typeof input === "number") {
  6. return Number(input.toString().split('').reverse().join(''));
  7. }
  8. return input.split('').reverse().join('');
  9. }

2 接口声明合并

多个同名接口声明会合并成一个,其合并方式是:

  1. 不同属性名的都保留;
  2. 同属姓名同属性类型的保留(合并)一个;
  3. 同属姓名但不同属性的合并时抛出异常
  4. 方法的合并于函数重载一样;

    3 类声明合并

    参考接口