MST

星途 面试题库

面试题:TypeScript类型推断与类型断言的深入应用

假设有一个函数,接收一个参数并返回该参数的平方。但这个参数可能是数字,也可能是字符串形式的数字。请使用TypeScript类型推断和类型断言来实现该函数,并处理好类型安全问题,同时说明在这个过程中类型推断和类型断言是如何协同工作的。
27.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function square(arg: number | string): number {
    let num: number;
    if (typeof arg ==='string') {
        num = parseInt(arg, 10);
    } else {
        num = arg;
    }
    return num * num;
}

类型推断和类型断言的协同工作说明

  1. 类型推断:在函数定义时,参数arg被定义为number | string类型,TypeScript 会根据函数内不同分支的逻辑进行类型推断。例如在typeof arg ==='string'分支中,TypeScript 能推断出此时arg是字符串类型,在另一个分支则推断arg是数字类型。
  2. 类型断言:这里虽然没有显式使用类型断言语法(如as),但通过typeof判断后赋值给num变量的过程,隐式地完成了类型断言。通过typeof判断,将arg根据不同类型进行处理并赋值给num,实际上是断言了arg在不同分支下的具体类型,从而确保后续操作的类型安全,即能正确计算平方值。