面试题答案
一键面试- 类型守卫:
- 在TypeScript中,类型守卫是一种运行时检查机制,它能够在特定代码块内缩小变量的类型范围。在上述代码中,
typeof value ==='string'
就是一个类型守卫。 - 类型守卫使用一些特定的语法(如
typeof
、instanceof
、in
等操作符)来进行类型检查。这里typeof
操作符用于检查value
的类型是否为string
。
- 在TypeScript中,类型守卫是一种运行时检查机制,它能够在特定代码块内缩小变量的类型范围。在上述代码中,
- 类型窄化:
- 当TypeScript编译器遇到
typeof value ==='string'
这个类型守卫为真的分支时,它能够根据这个条件进行类型窄化。 - 在
if
代码块内,编译器知道value
满足typeof value ==='string'
,所以它将value
的类型从string | number
窄化为string
。这是因为typeof value ==='string'
这个条件已经明确表明在这个分支中value
的类型是string
,从而使得console.log(value.length)
这样访问string
类型特有属性length
的代码能够正确通过类型检查。 - 这种类型窄化机制提高了代码的安全性和可靠性,让开发者可以在不同类型分支中安全地访问对应类型的属性和方法。
- 当TypeScript编译器遇到