TypeScript객체와 함수

함수 타입과 콜백 타입

매개변수, 반환값, 콜백 시그니처를 타입으로 표현해 함수 경계를 더 명확하게 만드는 기본 카드를 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

ts
type Formatter = (value: number) => string;

function formatPrice(value: number, fn: Formatter) {
  return fn(value);
}

설명

  • 함수 타입은 "어떤 입력을 받고 어떤 값을 돌려주는가"를 타입 수준에서 표현합니다.
  • 변수에 함수를 저장할 때, 콜백을 받을 때, 객체 프로퍼티로 함수를 둘 때 함수 타입 표현이 자주 쓰입니다.
  • 매개변수 타입과 반환 타입을 적절히 명시하면, 함수 경계가 곧 API 계약처럼 작동합니다.
  • 선택 매개변수, 기본값, rest parameter도 함수 타입 설계의 일부이며, 호출 가능한 형태를 결정합니다.
  • 특히 콜백 타입을 분명히 해 두면 비동기 API, 배열 메서드, 이벤트 처리 코드가 훨씬 읽기 쉬워집니다.

짧은 예제

ts
function mapToLabel(
  values: number[],
  formatter: (value: number) => string,
) {
  return values.map(formatter);
}

빠른 정리

요소의미
(x: number) => string숫자를 받아 문자열 반환
반환 타입함수 결과 계약을 명시
콜백 타입넘겨받는 함수의 형태를 고정
선택 매개변수없어도 되는 인자 표현
rest parameter가변 길이 인자 표현

주의할 점

함수 타입을 너무 장황하게 반복하기보다, 자주 쓰는 시그니처는 별도 type으로 뽑아 두면 코드가 더 읽기 쉬워지고 재사용도 쉬워집니다.

참고 링크

1 sources