面试题答案
一键面试function mapAndFilter<T, U>(
arr: T[],
mapFn: (element: T) => U,
filterFn: (element: U) => boolean
): U[] {
return arr.map(mapFn).filter(filterFn);
}
在TypeScript严格模式下,保障类型准确性体现在以下几个方面:
- 泛型约束:使用
T
和U
泛型分别表示输入数组元素类型和映射后元素类型,使得函数适用于各种类型数组,同时明确函数参数和返回值类型关系。 - 参数类型检查:严格模式确保传入的
mapFn
接受T
类型参数并返回U
类型,filterFn
接受U
类型参数并返回布尔值,若类型不匹配则编译报错。 - 返回值类型推断:根据
map
和filter
操作,TypeScript能准确推断出返回值类型为U[]
,开发者无需显式声明,减少类型错误风险。