[英]Discriminated unions with boolean
問題:
與 boolean 類型的歧視聯合似乎僅適用於真正的關聯類型。
復制器:
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
}
})
預期結果:
如果它適用於 true,它應該適用於 false。 這是正常行為,還是更像一個問題?
如果您使用strictNullChecks
這將按預期工作。 如果您不使用嚴格的 null 檢查(我懷疑基於您的問題),如果您使用=== true
,則可以使其正常工作
dummies.forEach(value => {
if (value.hint === true) {
value.a
} else {
value.b
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.