MST

星途 面试题库

面试题:TypeScript 中 typeof 类型保护在函数参数判断的应用

请编写一个 TypeScript 函数,该函数接受一个参数,使用 typeof 类型保护判断参数类型,如果是字符串类型,返回字符串长度;如果是数字类型,返回该数字的平方;如果是其他类型,返回 null 。请详细说明你如何使用 typeof 进行类型保护。
36.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processValue(value: string | number | any): number | null {
    if (typeof value ==='string') {
        return value.length;
    } else if (typeof value === 'number') {
        return value * value;
    } else {
        return null;
    }
}

在上述代码中,typeof 用于进行类型保护。typeof value ==='string' 这一条件判断,只有当 value 确实为字符串类型时才会进入相应代码块,此时 value 在该代码块内的类型被“保护”为 string,因此可以安全地访问 length 属性。同样,typeof value === 'number' 判断确保只有当 value 是数字类型时,才会执行计算平方的操作,在该代码块内 value 的类型被“保护”为 number。对于其他不符合前面两种类型判断的情况,就返回 null