함수 시그니처를 type 으로 선언하기
type 에 단순히 하나의 타입을 지정하는 것을 넘어 함수 시그니처 자체도 하나의 타입으로 만들 수 있다.
- 아래의 예제는 2개의
number 타입 파라미터를 받고 number 를 반환하는 시그니처를 만들고 적용한 예이다.
type TypeFunctionSignature1 = (x: number, y: number) => number;
const nf: TypeFunctionSignature1 = (x, y) => x + y;
type TypeFunctionSignature2 = (x: string, y: string) => string;
const sf: TypeFunctionSignature2 = (x, y) => x + y;
콜백 함수에 type 넣기
map 같이 인자로 콜백함수를 받는 경우에도 타입을 이용할 수 있다.
- 콜백함수에 넣을 인자를 시그니처로 정의하면 된다.
type Mapper = (x: string) => string;
const list = (callback: Mapper) => {
return ["a", "b", "c"].map(callback);
};
console.log(list((e) => `-> ${e}`));
Interface 로 함수 시그니처 선언하기
interface 로도 함수 시그니처를 선언할 수 있다.
type 과 매우 흡사하다.
interface InterfaceFunctionSignature1 {
(x: number, y: number): number;
}
const mul: InterfaceFunctionSignature1 = (x, y) => x * y;