[typescript] 타입 별칭과 인터페이스의 함수 시그니처 정의 방법

서론

TypeScript는 JavaScript의 확장으로, 정적 타입을 지원하여 코드의 안정성을 높여줍니다. 타입 시스템은 타입 별칭과 인터페이스를 사용하여 데이터의 구조를 정의하고, 함수 시그니처를 선언하는 방법을 제공합니다. 이번 포스트에서는 타입 별칭과 인터페이스의 함수 시그니처 정의 방법에 대해 알아보겠습니다.

타입 별칭(Type Aliases)

타입 별칭은 이미 존재하는 타입에 대해 새로운 이름을 부여함으로써 사용자 정의 타입을 만들 수 있습니다. interface와 달리 type 키워드를 사용하여 정의합니다.

type Greeting = (name: string) => string;

위의 예시에서 Greeting(name: string) => string 형식의 함수 시그니처를 갖는 새로운 타입을 정의합니다. 이후 Greeting 타입을 사용하여 함수의 매개변수와 반환값의 타입을 지정할 수 있습니다.

인터페이스(Interfaces)

인터페이스는 객체의 구조를 정의하기 위해 사용됩니다. 함수 시그니처를 가진 인터페이스는 다음과 같이 정의할 수 있습니다.

interface Calculate {
  (num1: number, num2: number): number;
}

위의 예시에서 Calculate 인터페이스는 (num1: number, num2: number) => number 형식의 함수 시그니처를 가집니다. 이 인터페이스를 사용하여 함수의 타입을 명시할 수 있습니다.

타입 별칭 vs. 인터페이스

타입 별칭과 인터페이스 모두 사용자 정의 타입을 만들기 위한 도구로서 유사한 목적을 가지고 있지만, 각각의 특징과 적용범위가 다릅니다. 일반적으로, 인터페이스는 객체의 구조를 정의하는 데 사용되고, 타입 별칭은 유니온 타입, 인터섹션 타입, 그리고 함수 시그니처와 같이 복잡한 타입을 정의하는 데 사용됩니다.

결론

타입 별칭과 인터페이스를 이용하여 함수 시그니처를 정의할 수 있으며, 각각의 특징을 고려하여 적절히 활용할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

더 많은 정보를 원하시면 다음 TypeScript 공식 문서를 참고하시기 바랍니다: TypeScript Handbook - Type Aliases, TypeScript Handbook - Interfaces.

참고 문헌: