代码点读机 / TypeScript / is

is TypeScript · 类型关键字

在函数返回值里声明一个自定义类型保护,让 TypeScript 根据 true/false 结果把变量缩窄成更具体的类型。

怎么用

function 名(x: unknown): x is 类型 {
  return 判断条件;
}

小例子

function 是字符串(x: unknown): x is string {
  return typeof x === "string";
}
let 值: unknown = "hi";
if (是字符串(值)) {
  console.log(值.toUpperCase());
}

类型检查结果

运行结果:HI

提醒:函数体必须返回 boolean,且 TypeScript 会信任这个声明来缩窄类型;如果判断逻辑写错,类型保护就会骗人

官方文档:https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← TypeScript全部词条