对防抖函数进行类型标注
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;