Skip to content

Latest commit

 

History

History
18 lines (16 loc) · 354 Bytes

once.md

File metadata and controls

18 lines (16 loc) · 354 Bytes
description
최초 한번의 함수 호출만 허용

once

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));
  };
}