MST

星途 面试题库

面试题:TypeScript复杂函数重载的类型推断

已知有一个函数`printValue`,它有以下重载情况:当传入一个数字时,打印这个数字的平方;当传入一个字符串时,打印字符串的长度;当传入一个布尔值时,打印其取反后的结果。请实现这个`printValue`函数,并在调用它的时候展示TypeScript如何进行正确的类型推断。
29.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function printValue(value: number): void;
function printValue(value: string): void;
function printValue(value: boolean): void;
function printValue(value: number | string | boolean): void {
    if (typeof value === 'number') {
        console.log(value * value);
    } else if (typeof value ==='string') {
        console.log(value.length);
    } else if (typeof value === 'boolean') {
        console.log(!value);
    }
}

// 调用展示类型推断
printValue(5); // 类型推断为number,打印25
printValue('hello'); // 类型推断为string,打印5
printValue(true); // 类型推断为boolean,打印false