为什么 TypeScript 程序员更喜欢接口而不是类型

Are*_* C. 5 typescript

我看到很多 TypeScript 开发人员过度使用接口。事实上,他们几乎将它用于所有事情,即使他们的代码比面向对象更实用。就我个人而言,我更喜欢type哪个更灵活,并且如果接口由任何类实现或者仅用于定义对象类型,则不会混淆。是否有任何优势可以使用,interface或者type它是开发人员习惯做的某种遗留的事情吗?

H.B*_*.B. 7

的预期用途type类型的别名,特别是交集/联合类型。

\n

它们不应该像接口一样使用,如文档所述:

\n
\n

正如我们提到的,类型别名的作用有点像接口;然而,存在一些细微的差别。

\n

一个区别是接口创建了一个到处使用的新名称。例如,键入别名不要\xe2\x80\x99t 创建新名称\xe2\x80\x94,错误消息不会\xe2\x80\x99t 使用别名。在下面的代码中,interfaced将鼠标悬停在编辑器中将显示它返回一个Interface,但将显示aliased返回对象文字类型。

\n
type Alias = { num: number }\ninterface Interface {\n    num: number;\n}\ndeclare function aliased(arg: Alias): Alias;\ndeclare function interfaced(arg: Interface): Interface;\n
Run Code Online (Sandbox Code Playgroud)\n
\n