以下代码:
export type Partial2DPoint = { x: number } | { y: number }
export interface Partial3DPoint extends Partial2DPoint {
z: number
}
失败,出现以下错误:
接口只能扩展对象类型或具有静态已知成员的对象类型的交集。
为什么会这样?
答案 0 :(得分:0)
(我正在回答我自己的问题)这是因为您不能使用接口扩展联合类型。您必须使用类型别名:
export type Partial2DPoint = { x: number } | { y: number }
export type Partial3DPoint = Partial2DPoint & { z: number }
一个类可以以完全相同的方式实现接口或类型别名。但是请注意,类和接口被视为静态蓝图。 因此,他们无法实现/扩展用于命名联合类型的类型别名。