面试题答案
一键面试function processValue(value: string | number | null) {
if (typeof value ==='string') {
console.log(value.length);
}
}
类型守卫原理
类型守卫是一种运行时检查机制,它基于特定的逻辑判断来缩小变量的类型范围。在上述代码中,typeof value ==='string'
就是一个类型守卫。TypeScript 编译器能够识别这种常见的类型检查模式,当条件满足时,在该条件块内,value
的类型会被缩小为 string
,这样就可以安全地访问 string
类型的属性和方法,比如 length
。
类型守卫作用
- 增强代码安全性:通过类型守卫,可以在使用变量之前确保其类型符合预期,避免运行时因为类型不匹配而导致的错误,比如访问不存在的属性或方法。
- 优化代码逻辑:使得代码能够根据不同的类型执行不同的逻辑,提高代码的灵活性和可读性。