MST

星途 面试题库

面试题:TypeScript 类型守卫的深入应用

在 TypeScript 中,假设你有一个函数接收参数 `value`,它可能是 `string`、`number` 或 `null`。请编写代码,使用类型守卫来确保当 `value` 为 `string` 时,调用 `value.length` 不会报错,并且详细说明类型守卫的原理和作用。
41.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processValue(value: string | number | null) {
    if (typeof value ==='string') {
        console.log(value.length);
    }
}

类型守卫原理

类型守卫是一种运行时检查机制,它基于特定的逻辑判断来缩小变量的类型范围。在上述代码中,typeof value ==='string' 就是一个类型守卫。TypeScript 编译器能够识别这种常见的类型检查模式,当条件满足时,在该条件块内,value 的类型会被缩小为 string,这样就可以安全地访问 string 类型的属性和方法,比如 length

类型守卫作用

  1. 增强代码安全性:通过类型守卫,可以在使用变量之前确保其类型符合预期,避免运行时因为类型不匹配而导致的错误,比如访问不存在的属性或方法。
  2. 优化代码逻辑:使得代码能够根据不同的类型执行不同的逻辑,提高代码的灵活性和可读性。