这可能很简单,但我找不到答案,感谢您的帮助!我正在尝试让函数断言变量的值类型,我想知道这是否可以通过打字稿实现:
检查非空
function isNull(val: any) {
return val == null
}
function fn( val: string | null ) {
// if (val == null) return // works
if (isNull(val)) return // doesn't work
val.split(",")
}
检查 var 是否为数字
function isNumber(val: any) {
return val == "number"
}
function fn2( val: string | number ) {
// if (typeof val == "number") return // works
if (isNumber(val)) return // doesn't work
val.split(",")
}
答案 0 :(得分:1)
使函数类型保护,以向 TypeScript 编译器指示返回的真值表明参数是特定类型:
function isNull(val: any): val is null {
return val == null
}
function isNumber(val: any): val is number {
return typeof val == "number"
}
(请注意,您需要使用 typeof val
,而不仅仅是 val
中的 isNumber
)