함수의 타입

Changhan·2025년 1월 26일

Typescript

목록 보기
11/29

타입을 선언할 때 함수도 선언할 수 있다.

함수를 타입으로 선언하기

map 함수의 콜백함수를 runner 함수의 파라미터로 받아오게 하고 싶다고 가정하자.

const runner = () => {
  return ['태연', '윤아', '티파니'].map((x) => `소녀시대 멤버: ${x}`);
};
console.log(runner());
type Mapper = (x: string) => string; // string을 받고, string을 반환

Mapper라는 새로운 타입을 만들어서

const runner2 = (callback: Mapper) => {
  return ['태연', '윤아', '티파니'].map(callback);
};
console.log(runner2((x) => `소녀시대 멤버: ${x}`));

매개변수에 함수를 넣어줘서 이 함수의 타입을 정의할 수 있다.


함수 변수 자체에 타입 선언하기

type MultiplyTwoNumbers = (x: number, y: number) => number;

const multiplyTwoNumbers: MultiplyTwoNumbers = (x, y) => {
  return x + y;
};

매개변수가 아닌 함수 이름에서 타입을 선언하는 게 개인적으로 더 깔끔하고, 보기 좋은 것 같다.

interface로 함수 선언하기

이전까지는 type 키워드만 이용한 타입 선언에 대해 알아보았다. 이번엔 interface 키워드를 이용한 선언 방법을 알아보자.

interface MultiplyNumbers {
  (x: number, y: number): number;
}
const multiplyTwoNumbers3: MultiplyNumbers = (x, y) => {
  return x * y;
};

객체 타입을 선언할 때는 프로퍼티를 넣었지만, 함수에서는 함수의 매개변수와 반환값에 대한 타입을 적어주면 된다. 콜론(:)을 쓰는 것에 주의하자.

0개의 댓글