[typescript] 함수 호이스팅을 이용한 클로저 구현 시 주의해야 할 점은 무엇인가요?

함수를 호이스팅하면서 클로저를 구현할 때 상위 스코프에서 사용하는 변수가 함수 정의 아래에 있더라도 클로저가 예상대로 작동하지 않을 수 있습니다. 이를 방지하기 위해, 클로저에서 사용할 변수는 모두 해당 함수 내에서 선언하거나 넘겨받아 사용해야 합니다.

예를 들어, TypeScript로 클로저를 구현할 때 다음과 같이 주의해야 합니다.

function createMultiplier(multiplier: number): (num: number) => number {
  return function (num: number): number {
    return num * multiplier;  // multiplier는 해당 함수 내에서 선언된 매개변수입니다.
  };
}

이와 같이 클로저를 구현함으로써 함수 호이스팅으로 인한 문제를 피할 수 있습니다. 필요한 경우, 클로저 및 함수 호이스팅에 대한 더 자세한 내용은 TypeScript 공식 문서를 참고하시기 바랍니다.