Skip to content

对防抖函数进行类型标注

Code

ts
function sum(a: number, b: number) {
  return a + b;
}

declare function debounce(fn: Function, delay: number): Function;
const dSum = debounce(sum, 1000);

解析

ts
// 1. 传入函数和返回函数类型一致,修改成泛型
declare function debounce<T>(fn: T, delay: number): T;
// 2. 防抖函数是没返回类型
declare function debounce<T extends any[]>(
  fn: (...args: T) => any,
  delay: number
): (...args: T) => void;