Avatar ·

TypeScript:interface和type有什么区别?何时使用哪个?

大家好!我开始学习TypeScript,对`interface`和`type`之间的区别感到困惑。似乎两者都可以描述对象的结构,但我不明白何时使用哪个工具。 看看我的代码。我试图描述一个用户及其地址: ```typescript // 使用interface的版本 interface IUser { name: string; age: number; address: IAddress; } interface IAddress { city: string; street: string; } // 使用type的版本 type TUser = { name: string; age: number; address: TAddress; } type TAddress = { city: string; street: string; } ``` 两个版本都有效,但我听说有一些根本性的区别。例如,我看到`type`可以对联合类型做某些操作,而`interface`不能。还有一些项目中全部使用`interface`,而另一些则使用`type`。 请告诉我,真正的区别是什么?有什么好的实践规则?也许有些情况下只能使用其中一个?