Last updated 1 year ago
최초 한번의 함수 호출만 허용
function once<A extends any[], R, T>( fn: (this: T, ...args: A) => R ): (this: T, ...args: A) => R | undefined { let done = false; return function (this: T, ...args: A) { return done ? undefined : ((done = true), fn.apply(this, args)); }; }