是否可以在 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`,什么时候使用类型的交叉类型?
提前感谢您的帮助!