发现TypeScript中同名interface接口会自动合并的特性

时间:2023-07-17 23:16:02

今天在学习怎么用TypeScript给jQuery写扩展插件时发现一个很有趣的事情

发现TypeScript中同名interface接口会自动合并的特性

如上图,VS提示我应该在类C中实现b。

我可以同时定义一个重名的接口,而这个接口内容会自动合并。

这再C#中是绝对不允许的,除非在不同的命名空间中。

发现TypeScript中同名interface接口会自动合并的特性

但如果我在重名接口中定义相同名称的属性会报重名错误。

也就说并不是js中的后定义的覆盖先前定义的内容。

虽然这些接口信息在编译都不复存在,在这个自动合并的特性还是有些让人费解。

应该是为了照顾js中的随意扩充对象的特性。