TypeScript中预定义的有条件类型:
Exclude<T, U> – 从T中剔除可以赋值给U的类型。
Extract<T, U> – 提取T中可以赋值给U的类型。
NonNullable – 从T中剔除null和undefined。
ReturnType – 获取函数返回值类型。
InstanceType – 获取构造函数类型的实例类型。
type TimeoutHandle = ReturnType<typeof setTimeout>;
// 封装延迟函数
export const delay = (timeout: number) =>
new Promise(resolve => setTimeout(resolve, timeout));
// 封装防抖函数
export const debounce = (fn: () => Fn, timeout: number) => {
let timmer: TimeoutHandle;
return () => {
timmer ? clearTimeout(timmer) : null;
timmer = setTimeout(fn, timeout);
};
};