Avatar ·

是否可以在 TypeScript 中像接口一样扩展(extends)类型?

大家好!我刚开始学习 TypeScript,遇到了一个困惑。我知道接口可以通过 `extends` 来扩展。例如: ```typescript interface User { name: string; } interface AdminUser extends User { role: string; } ``` 这工作得很好。但是当我尝试对类型(type alias)做同样的事情时,却失败了: ```typescript type User = { name: string; }; type AdminUser extends User { // ❌ 错误:'extends' 不能用于类型 role: string; } ``` 我尝试了不同的方法,但 TypeScript 报错。网上说类型可以通过交叉类型(&)来扩展,但我不太明白如何正确操作,以及在扩展方面接口和类型有什么区别。 请告诉我如何正确扩展类型?是否可能做到?如果可以,什么时候应该使用接口的 `extends`,什么时候使用类型的交叉类型? 提前感谢您的帮助!