MST

星途 面试题库

面试题:TypeScript函数类型系统之类型推断与参数匹配

编写一个TypeScript函数,接收两个参数,第一个参数是一个数字数组,第二个参数是一个函数,该函数接收一个数字并返回一个布尔值。函数的作用是从数组中筛选出符合第二个函数条件的数字并返回新数组。请给出函数的类型定义以及实现代码,并解释这里面类型推断是如何工作的。
46.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

类型定义与实现代码

function filterArray(arr: number[], callback: (num: number) => boolean): number[] {
    return arr.filter(callback);
}

类型推断的工作原理

  1. 参数类型推断
    • 函数filterArray的第一个参数arr明确声明为number[],所以TypeScript知道传入的必须是数字数组。
    • 第二个参数callback声明为(num: number) => boolean,这表明它是一个函数,接收一个数字参数并返回一个布尔值。TypeScript会确保传入的回调函数符合这个类型定义。
  2. 返回值类型推断
    • 函数内部使用数组的filter方法,filter方法的返回值类型与原数组类型一致,因为它返回的是原数组中符合条件的元素组成的新数组。所以filterArray的返回值类型为number[],TypeScript根据filter方法的特性推断出了返回值类型。