假设我有以下类型:
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.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答873 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
关键字
extends
只能用于接口和类。如果您只想声明具有附加属性的类型,可以使用 交集类型:
TypeScript 2.2 的 更新,如果类型满足一些限制, 现在可以有一个扩展类对象类型的接口:
相反,它不起作用 - 如果要使用
extends
语法,则必须将UserEvent
声明为接口,而不是type
。并且仍然不可能对 任意类型 使用
extend
- 例如,如果Event
是没有任何约束的类型参数,它就不起作用。