Typescript是否可以扩展类型?
Typescript是否可以扩展类型?
假设我有以下类型:
type Event = { name: string; dateCreated: string; type: string; }
我现在想要扩展这个类型,即:
type UserEvent extends Event = { UserId: string; }
这样做是不起作用的。我应该如何操作?
admin 更改状态以发布 2023年5月21日
extends
关键字仅适用于接口和类。
如果您只是想声明具有附加属性的类型,则可以使用交叉类型:
type UserEvent = Event & {UserId: string}
对于TypeScript 2.2的更新,现在可以有一个扩展对象类型的接口,如果该类型满足一些限制:
type Event = { name: string; dateCreated: string; type: string; } interface UserEvent extends Event { UserId: string; }
反之则不起作用-如果要使用extends
语法,则UserEvent
必须声明为接口,而不是type
。
并且仍然无法使用extend
与任意类型一起使用-例如,如果Event
是没有任何约束的类型参数,则无法使用。