TypeScript 词条目录
前端Wiki/词条/函数类型

函数类型

定义描述函数参数与返回值形状的类型,让契约与实现分离

函数类型描述参数与返回值的形状,写法是 (a: number, b: string) => boolean。定义回调、工具函数类型别名时最常用:type Handler = (e: Event) => void,然后所有事件处理函数都按 Handler 约束。函数类型让接口契约与实现分离,依赖注入与策略模式都靠它表达。

函数类型还可以带泛型、可选参数与默认值:function pick(list: T[], n?: number): T[]。可选参数必须位于必选参数之后,this 需要显式声明为第一个参数。对象上的函数属性有两种写法,普通属性与接口方法在严格模式下对 this 的推断不同,使用时要注意区分。

JavaScript
type Handler = (e: Event) => void;

function on(el: Element, type: string, fn: Handler) {
  el.addEventListener(type, fn);
}

function pick<T>(list: T[], n = 1): T[] {
  return list.slice(0, n);
}

on(document.body, 'click', (e) => {
  console.log(e.timeStamp);
});

pick([1, 2, 3], 2);   // [1, 2]
⚠ 常见误区
🔗 相关词条函数类型泛型基础
← 返回来源章节函数类型