JavaScript
런타임 확인
function add(a, b) {
return a + b;
}
add(10, "20"); // "1020"
숫자 덧셈을 의도해도 문자열이 섞이면 실행 결과를 보고 나서야 문제를 알아차릴 수 있습니다.
JavaScript의 유연성은 빠른 시작을 돕지만, 코드와 팀이 커지면 의도하지 않은 값이 런타임까지 숨어 있을 수 있습니다. 타입은 함수와 데이터의 약속을 먼저 드러내는 장치입니다.
function add(a, b) {
return a + b;
}
add(10, "20"); // "1020"
숫자 덧셈을 의도해도 문자열이 섞이면 실행 결과를 보고 나서야 문제를 알아차릴 수 있습니다.
function add(a: number, b: number): number {
return a + b;
}
add(10, "20"); // type error
타입 계약이 코드에 남아 있어 잘못된 인자를 실행 전에 확인하고 수정할 수 있습니다.
실행 전에 값의 형태가 함수 계약과 맞는지 검사합니다.
입력, 반환값, 데이터 구조가 코드 안의 설명서가 됩니다.
자동완성, 이동, 이름 변경의 정확도가 올라갑니다.
변경 영향이 큰 코드에서 계약 위반을 빨리 발견합니다.
타입 표기를 문법 추가가 아니라 함수와 데이터의 의도를 설명하는 문장으로 읽으면 이후 절의 타입 시스템 학습이 자연스럽게 이어집니다.