TypeScript 面试题
目录

请解释函数、枚举和类的声明合并规则

· 约 3 分钟读完 · 第 113 / 256 章

推荐答案

在 TypeScript 中,声明合并是指编译器将多个同名的声明合并为一个单一的声明。函数、枚举和类的声明合并规则如下:

  1. 函数:函数声明可以与其他同名函数声明合并,前提是它们的参数类型和返回类型兼容。合并后的函数将包含所有重载签名。

  2. 枚举:枚举声明可以与同名枚举声明合并。合并后的枚举将包含所有枚举成员。如果存在同名成员,则必须具有相同的值。

  3. 类:类声明可以与同名的接口声明合并。合并后的类将包含接口中定义的属性和方法。类不能与其他类声明合并。

本题详细解读

函数的声明合并

函数的声明合并允许你为同一个函数提供多个重载签名。TypeScript 会根据传入的参数类型选择最合适的重载签名。

在这个例子中,add 函数有两个重载签名,分别处理数字和字符串的加法操作。最终的实现函数 add 包含了所有重载签名。

枚举的声明合并

枚举的声明合并允许你将多个同名的枚举声明合并为一个枚举。合并后的枚举将包含所有枚举成员。

在这个例子中,Color 枚举被声明了两次,合并后的枚举包含了 Red、Green 和 Blue 三个成员。

类的声明合并

类的声明合并允许你将类与同名的接口合并。合并后的类将包含接口中定义的属性和方法。

在这个例子中,Person 类与 Person 接口合并,合并后的类包含了接口中定义的 name 属性和 greet 方法。