假设您具有以下类型:
type Foo = {
prop1: 'foo',prop2: null
}
type Bar = {
prop1: 'bar',prop2: number
}
type FooOrBar = Foo | Bar
是否可以使用条件类型重写以上代码?
我尝试了以下操作:
type FooOrBar = {
prop1: 'foo' | 'bar'
prop2: FooOrBar['prop1'] extends 'foo' ? null : number
}
但是当试图像这样声明var时:
const sample1: FooOrBar = {
prop1: 'foo',prop2: null
}
我收到以下错误:
类型'null'不能分配给类型'number'。
FooOrBar['prop1'] extends 'foo'
始终是false
,这不是应该的,因为FooOrBar['prop1']
是'foo' | 'bar'
的联合类型
我在做什么错了?