MST

星途 面试题库

面试题:TypeScript泛型中类型推断的基础应用

请实现一个泛型函数 `identity`,它接受一个参数并返回该参数。同时,请解释在这个泛型函数中类型推断是如何工作的,当传入不同类型的参数时,类型推断的结果是什么。
22.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function identity<T>(arg: T): T {
    return arg;
}

类型推断的工作原理及结果

  1. 类型推断工作原理:当调用 identity 函数时,TypeScript 编译器会根据传入的参数类型来推断泛型类型参数 T 的具体类型。它会从函数调用的参数值中获取类型信息,然后将这个类型信息应用到函数的返回值类型上,确保返回值类型与参数类型一致。
  2. 不同参数类型下的推断结果
    • 传入数字类型参数:例如 const result1 = identity(10);,此时编译器推断 Tnumber 类型,函数返回值也为 number 类型。
    • 传入字符串类型参数:如 const result2 = identity('hello');,编译器推断 Tstring 类型,函数返回值同样为 string 类型。
    • 传入对象类型参数:比如 const obj = {name: 'John'}; const result3 = identity(obj);,编译器推断 T{name: string} 类型,函数返回值也是 {name: string} 类型。

通过类型推断,泛型函数 identity 能够在不同类型参数传入时,自动确定并保持参数和返回值类型的一致性,增强了代码的灵活性和类型安全性。