한 입 크기로 잘라먹는 타입스크립트
Search

함수 타입 표현식과 호출 시그니쳐

 
chapter1.ts에서 진행합니다.

함수 타입 표현식

다음과 같이 함수 타입을 타입 별칭과 함께 별도로 정의할 수 있습니다. 이를 함수 타입 표현식(Function Type Expression)이라고 부릅니다.
코드를 불러오는 중 입니다 ...
변수 add의 타입을 함수 타입 표현식으로 정의한 함수 타입으로 정의했습니다.
이렇게 함수 타입 표현식을 이용하면 함수 선언 및 구현 코드와 타입 선언을 분리할 수 있어 유용합니다.
 
함수 타입 표현식은 다음과 같이 여러개의 함수가 동일한 타입을 갖는 경우에 요긴하게 사용됩니다.
코드를 불러오는 중 입니다 ...
 
위 코드를 함수 타입 표현식을 이용하면 다음과 같이 간결하게 만들 수 있습니다. 또 나중에 동일한 타입의 함수가 추가되어도 타입 주석을 이용해 타입 정의만 해주면 되어 매우 편리합니다.
코드를 불러오는 중 입니다 ...
 
함수 타입 표현식이 반드시 타입 별칭과 함께 사용되어야 하는 것은 아닙니다. 다음과 같이 그냥 함수 타입 표현식을 타입 주석에 사용해도 문제는 없습니다.
코드를 불러오는 중 입니다 ...
 

호출 시그니쳐

호출 시그니쳐(Call Signature)는 함수 타입 표현식과 동일하게 함수의 타입을 별도로 정의하는 방식입니다.
코드를 불러오는 중 입니다 ...
자바스크립트에서는 함수도 객체이기 때문에, 위 코드처럼 객체를 정의하듯 함수의 타입을 별도로 정의할 수 있습니다.
 
참고로 이때 다음과 같이 호출 시그니쳐 아래에 프로퍼티를 추가 정의하는 것도 가능합니다. 이렇게 할 경우 함수이자 일반 객체를 의미하는 타입으로 정의되며 이를 하이브리드 타입이라고 부릅니다.
코드를 불러오는 중 입니다 ...
 
PREV함수 타입
NEXT함수 타입의 호환성