在 If 语句中确定 IDE 中的条件类型
Determining conditional type in IDE in If statement
指定一个类型有两种格式,具体取决于其中一个键的值,就像这样
type singleOrMultiValue = {isSingle: true, value: string} | {isSingle: false, set: Array<string>}
我可以用它来防止像 const val : singleOrMultipleValue = {isSingle: false, value: '1'}
.
这样的错误
但是在 运行 时尝试确定变量类型是什么,我会尝试:
if (val.isSingle) {
console.log(val.value)
} else {
console.log(val.set[0])
}
但这会给我错误 value
does not exist on type singleOrMultiValue
for {isSingle: false}
。有没有办法写这个,以便 IDE 在这个 if 范围内理解,该类型的 isSingle
值为真?或者是显式声明另一个变量以符合/使用 as any
?
的唯一方法
谢谢!
找到解决方案 - VS Code 可以识别 if 语句中的值,但前提是你写 else if (val.isSingle == false)
,而不是 else if (!val.isSingle)
或 else {
。
指定一个类型有两种格式,具体取决于其中一个键的值,就像这样
type singleOrMultiValue = {isSingle: true, value: string} | {isSingle: false, set: Array<string>}
我可以用它来防止像 const val : singleOrMultipleValue = {isSingle: false, value: '1'}
.
但是在 运行 时尝试确定变量类型是什么,我会尝试:
if (val.isSingle) {
console.log(val.value)
} else {
console.log(val.set[0])
}
但这会给我错误 value
does not exist on type singleOrMultiValue
for {isSingle: false}
。有没有办法写这个,以便 IDE 在这个 if 范围内理解,该类型的 isSingle
值为真?或者是显式声明另一个变量以符合/使用 as any
?
谢谢!
找到解决方案 - VS Code 可以识别 if 语句中的值,但前提是你写 else if (val.isSingle == false)
,而不是 else if (!val.isSingle)
或 else {
。