MST

星途 面试题库

面试题:TypeScript复杂场景下的上下文类型推断

假设有一个函数`processData`,它接受一个回调函数作为参数,回调函数有两个参数,第一个参数是一个数组,数组元素类型为`string`或`number`,第二个参数是一个布尔值,返回值是一个`Promise`,`Promise`的`resolve`类型为`string`。请写出`processData`函数的类型定义,并解释其中类型推断在上下文环境中的作用及过程。
18.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type CallbackType = (data: (string | number)[], flag: boolean) => Promise<string>;

function processData(callback: CallbackType) {
    // 函数具体实现,这里省略
}

类型推断在上下文环境中的作用及过程

  1. 作用:类型推断在这个上下文中的主要作用是确保代码的类型安全。通过明确函数processData接受的回调函数的类型,TypeScript 可以在编译时检查传递给processData的回调函数是否符合定义的类型,避免在运行时出现类型不匹配的错误。例如,如果传递的回调函数参数数量不对,或者返回值类型不符合Promise<string>,TypeScript 编译器会给出错误提示。
  2. 过程
    • 首先定义CallbackType类型别名,明确它是一个函数类型,接受两个参数,第一个参数是(string | number)[]类型的数组,第二个参数是boolean类型,返回值是Promise<string>类型。
    • 然后在定义processData函数时,指定其参数callback的类型为CallbackType。当代码中调用processData并传递回调函数时,TypeScript 会将传递的回调函数与CallbackType进行对比。如果回调函数的参数数量、参数类型和返回值类型都与CallbackType匹配,那么代码通过类型检查;否则,编译器会报错。这样就利用类型推断机制在编译阶段保证了函数调用的类型正确性。