假设我有以下类型:
type Event = {
name: string;
dateCreated: string;
type: string;
}
我现在想扩展这种类型,即
type UserEvent extends Event = {
UserId: string;
}
这行不通。我怎样才能做到这一点?
原文由 Kousha 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有以下类型:
type Event = {
name: string;
dateCreated: string;
type: string;
}
我现在想扩展这种类型,即
type UserEvent extends Event = {
UserId: string;
}
这行不通。我怎样才能做到这一点?
原文由 Kousha 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
关键字
extends
只能用于接口和类。如果您只想声明具有附加属性的类型,可以使用 交集类型:
TypeScript 2.2 的 更新,如果类型满足一些限制, 现在可以有一个扩展类对象类型的接口:
相反,它不起作用 - 如果要使用
extends
语法,则必须将UserEvent
声明为接口,而不是type
。并且仍然不可能对 任意类型 使用
extend
- 例如,如果Event
是没有任何约束的类型参数,它就不起作用。