MST

星途 面试题库

面试题:TypeScript中如何设计简单的类型保护函数

假设你有一个联合类型 `let value: string | number;`,请设计一个类型保护函数,能够判断 `value` 是 `string` 类型还是 `number` 类型,并返回相应的布尔值。同时说明类型保护函数的返回类型声明应该注意什么。
46.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function isString(value: string | number): value is string {
    return typeof value ==='string';
}

function isNumber(value: string | number): value is number {
    return typeof value === 'number';
}

类型保护函数的返回类型声明应该使用 value is Type 这种形式,其中 Type 是要判断的具体类型。这样TypeScript就能根据函数的返回值,在函数调用之后的代码块中,缩小联合类型的范围,从而实现类型保护。