타입 계약

TypeScript 계약 검사

JavaScript의 유연성은 빠른 시작을 돕지만, 코드와 팀이 커지면 의도하지 않은 값이 런타임까지 숨어 있을 수 있습니다. 타입은 함수와 데이터의 약속을 먼저 드러내는 장치입니다.

JavaScript

런타임 확인
function add(a, b) {
  return a + b;
}

add(10, "20"); // "1020"

숫자 덧셈을 의도해도 문자열이 섞이면 실행 결과를 보고 나서야 문제를 알아차릴 수 있습니다.

같은 의도 숫자 + 숫자만 허용 발견 시점이 달라집니다

TypeScript

컴파일 전 표시
function add(a: number, b: number): number {
  return a + b;
}

add(10, "20"); // type error

타입 계약이 코드에 남아 있어 잘못된 인자를 실행 전에 확인하고 수정할 수 있습니다.

01

타입 체크

실행 전에 값의 형태가 함수 계약과 맞는지 검사합니다.

02

의도 명세

입력, 반환값, 데이터 구조가 코드 안의 설명서가 됩니다.

03

도구 지원

자동완성, 이동, 이름 변경의 정확도가 올라갑니다.

04

협업 안정성

변경 영향이 큰 코드에서 계약 위반을 빨리 발견합니다.

학습 관점

타입 표기를 문법 추가가 아니라 함수와 데이터의 의도를 설명하는 문장으로 읽으면 이후 절의 타입 시스템 학습이 자연스럽게 이어집니다.

먼저 타입을 붙일 곳
  • 함수 인자와 반환값처럼 의도가 분명한 경계
  • API 응답, 폼 값, 상태 모델처럼 여러 파일을 지나는 값