【发布时间】:2021-10-04 13:26:52
【问题描述】:
例如,我有一个方法isEmpty 检查是否有任何内容为空、null 或未定义,如果是则返回 true。
但是在 TypeScript 中,它不会让解释器知道是这种情况,我的 IDE (WebStorm) 中出现红色下划线
示例代码
let str: string | undefined = undefined
if (!isEmpty(str)) {
doSomeWorkFunction(str) // this line is shows the error 'string | undefined is not assignable to type string
}
但是如果代码是
let str: string | undefined = undefined
if (str) {
doSomeWorkFunction(str) // no error because the interpreter knows I checked the value
}
我想避免的解决方法是
let str: string | undefined = undefined
if (!isEmpty(str)){
// @ts-ignore
doSomeWorkFunction(str) // no error since ts is now ignoring this error
}
我怎样才能继续保持 TypeScript 严格的空检查,而不必忽略这样的问题。
【问题讨论】:
标签: javascript typescript webstorm