📎아이템 40 함수 안으로 타입 단언문 감추기
📍 예제
declare function cacheLast<T extends Function>(fn: T): T;
declare function shallowEqual(a: any, b: any): boolean;
function chcheLast<T extends Function>(fn: T): T {
let lastArgs: any[]|null = null;
let lastResult: any;
retturn function(...args: any[]) {
// 에러: (...args: any[]) => any 형식은 T 형식에 할당할 수 없다.
if (!lastArgs || !shallowEqual(lastArgs args)) {
lastResult = fn(...args);
lastArgs = args;
}
return lastResult;
}
}📍 요약
Last updated