TS编译器会将多个名字相同的声明合并为一个声明,合并后会拥有多个声明的特性
在TS中接口和命名空间是可以多次重复声明的,TS会将这些同名声明合并
声明结果
TS中一个声明的创建结果分为三种:命名空间、类型、值
接口合并
interface Inter {name: string}interface Inter {age: number}const info: Inter = {name: '阿坤',age: 22.5}
- 非函数成员:相同名称的必须类型也相同,否则报错
- 函数成员:同名的函数成员都会被当做函数的重载,最后面的会被作为实体函数
命名空间合并
namespace A {export const a = 1}namespace A {export const b = 2}A.a === 1
- 同名命名空间的导出内容会被合并在一起
