问题:
与布尔类型的歧视联合似乎仅适用于真正的关联类型。
复制者:
interface DummyA {
hint: true
a: string
}
interface DummyB {
hint: false
b: string
}
type Dummy =
| DummyA
| DummyB;
const dummies: Dummy[] = [
{
hint: true,
a: "a"
},
{
hint: false,
b: "b"
}
]
dummies.forEach(value => {
if (value.hint) {
value.a
} else {
value.b
}
})
Run Code Online (Sandbox Code Playgroud)
预期结果:
如果它与 true 一起工作,它也应该与 false 一起工作。这是正常行为,还是更像是一个问题?
如果您使用strictNullChecks它,它将按预期工作。如果您不使用严格的空检查(正如我根据您的问题怀疑的那样),如果您使用=== true
dummies.forEach(value => {
if (value.hint === true) {
value.a
} else {
value.b
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |