面试题答案
一键面试类型定义与实现代码
function filterArray(arr: number[], callback: (num: number) => boolean): number[] {
return arr.filter(callback);
}
类型推断的工作原理
- 参数类型推断:
- 函数
filterArray
的第一个参数arr
明确声明为number[]
,所以TypeScript知道传入的必须是数字数组。 - 第二个参数
callback
声明为(num: number) => boolean
,这表明它是一个函数,接收一个数字参数并返回一个布尔值。TypeScript会确保传入的回调函数符合这个类型定义。
- 函数
- 返回值类型推断:
- 函数内部使用数组的
filter
方法,filter
方法的返回值类型与原数组类型一致,因为它返回的是原数组中符合条件的元素组成的新数组。所以filterArray
的返回值类型为number[]
,TypeScript根据filter
方法的特性推断出了返回值类型。
- 函数内部使用数组的