面试题答案
一键面试function identity<T>(arg: T): T {
return arg;
}
类型推断的工作原理及结果
- 类型推断工作原理:当调用
identity
函数时,TypeScript 编译器会根据传入的参数类型来推断泛型类型参数T
的具体类型。它会从函数调用的参数值中获取类型信息,然后将这个类型信息应用到函数的返回值类型上,确保返回值类型与参数类型一致。 - 不同参数类型下的推断结果:
- 传入数字类型参数:例如
const result1 = identity(10);
,此时编译器推断T
为number
类型,函数返回值也为number
类型。 - 传入字符串类型参数:如
const result2 = identity('hello');
,编译器推断T
为string
类型,函数返回值同样为string
类型。 - 传入对象类型参数:比如
const obj = {name: 'John'}; const result3 = identity(obj);
,编译器推断T
为{name: string}
类型,函数返回值也是{name: string}
类型。
- 传入数字类型参数:例如
通过类型推断,泛型函数 identity
能够在不同类型参数传入时,自动确定并保持参数和返回值类型的一致性,增强了代码的灵活性和类型安全性。