【问题标题】:Typescript set value type from function打字稿从函数中设置值类型
【发布时间】:2021-07-17 03:18:08
【问题描述】:

这可能很简单,但我找不到答案,感谢任何帮助!我试图让一个函数为变量断言一个值类型,我想知道这是否可以通过打字稿:

检查不为空

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(",")
}

Typescript sandbox

【问题讨论】:

标签: typescript


【解决方案1】:

制作函数类型保护,向 TypeScript 编译器指示返回的真实值表明参数是特定类型:

function isNull(val: any): val is null {
    return val == null
}
function isNumber(val: any): val is number {
    return typeof val == "number"
}

(注意你需要在isNumber那里使用typeof val,而不仅仅是val

【讨论】:

  • 谢谢这是完美的
猜你喜欢
  • 1970-01-01
  • 2021-02-01
  • 2021-03-17
  • 2022-01-12
  • 2018-04-26
  • 2020-03-22
  • 2017-01-29
  • 2019-02-07
相关资源
最近更新 更多