[typescript] 함수 타입이 변수로 사용되는 경우

TypeScript에서 함수는 일급 객체로 취급됩니다. 이것은 함수가 변수에 할당되거나 함수 매개변수의 타입으로 사용될 수 있다는 의미입니다. 이제 함수 타입을 변수로 어떻게 사용하는지 살펴보겠습니다.

함수 타입 정의하기

먼저, 함수 타입을 정의해야 합니다. 예를 들어, (a: number, b: number) => number와 같이 매개변수와 반환 타입을 가진 함수 타입을 정의할 수 있습니다. 이는 두 개의 숫자를 매개변수로 받아 숫자를 반환하는 함수를 나타냅니다.

type MathOperation = (a: number, b: number) => number;

위의 예제에서, MathOperation은 함수 타입을 나타내는 새로운 타입으로 정의됩니다.

함수 타입을 변수로 할당하기

이제 함수 타입을 변수에 할당할 수 있습니다.

const add: MathOperation = (a, b) => a + b;
const multiply: MathOperation = (a, b) => a * b;

위의 예제에서, addmultiplyMathOperation 타입의 함수를 할당받는 변수입니다. 각 변수는 해당하는 계산을 수행하는 함수를 나타냅니다.

함수 타입을 매개변수로 사용하기

함수 타입을 변수로 사용하는 것 외에도, 함수의 매개변수로 사용할 수도 있습니다.

function performOperation(operation: MathOperation, a: number, b: number): number {
  return operation(a, b);
}

위의 예제에서, performOperation 함수는 MathOperation 타입의 operation 매개변수를 받습니다. 이 매개변수는 두 개의 숫자를 인수로 받는 함수를 나타냅니다. 함수 내에서 operation을 호출하여 결과를 반환합니다.

결론

TypeScript에서 함수 타입이 변수로 사용되거나 다른 함수의 매개변수로 사용될 수 있습니다. 이것은 코드를 더 모듈화하고 유연하게 만들어 줍니다.

이렇게 함으로써 코드의 가독성과 유지보수성을 높일 수 있습니다. 함수를 일급 객체로 취급함으로써 다양한 상황에 유연하게 대응할 수 있는 장점이 있습니다.

참고 자료:

TypeScript Handbook - Functions