typescript 的 is 类型谓词有什么用?

类型谓词 is

function isNumber(x: any): x is number {
  return typeof x === "number";
}

function isString(x: any): x is string {
  return typeof x === "string";
}
阅读 2.2k
2 个回答

类型谓词的函数,输出一个布尔值,如果返回true,所输入的参数x 就是 is后面对应的类型。 通常用在给联合类型确定一个具体的类型。
比如:

type num_str  = number | string ;
let a : num_str;
// ..... 过了若干操作后,无法确定a是什么类型
//然后 
function isNumber(x: any): x is number {
  return typeof x === "number";
}

if(isNumber(a)){  
    let b = 100 - a;   //语句块里, tsc 会把a 分析为 number
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题