MST

星途 面试题库

面试题:TypeScript 类型保护与基本类型结合

编写一个函数 `processValue`,它接受一个 `any` 类型的参数。在函数内部,需要通过类型保护判断这个参数是否为 `boolean`、`number` 或 `string` 类型,然后针对不同类型进行不同操作:如果是 `boolean`,返回其相反值;如果是 `number`,返回其立方;如果是 `string`,返回其反转后的字符串。请用 TypeScript 完成此函数,并说明用到的类型保护机制。
38.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processValue(value: any): boolean | number | string | undefined {
    if (typeof value === 'boolean') {
        return!value;
    } else if (typeof value === 'number') {
        return value * value * value;
    } else if (typeof value ==='string') {
        return value.split('').reverse().join('');
    }
    return undefined;
}

这里用到的类型保护机制是 typeof 类型守卫。typeof 操作符可以在运行时检查变量的类型,在 TypeScript 中,通过 typeof 对变量进行类型检查后,TypeScript 编译器能够在后续代码中基于这个类型检查结果进行类型推导,使得代码在特定分支中变量的类型得到明确,从而提高代码的类型安全性。