Function contract
함수 계약은 호출부, 구현부, 반환 사용처를 연결한다
타입이 맞지 않으면 호출 자체가 막히고, 반환 타입이 분명하면 이후 코드의 분기도 줄어든다.
매개변수 이름보다 타입, 순서, optional 여부가 계약
입력 타입 안에서만 안전한 연산 수행
호출자는 반환 타입을 기준으로 다음 코드를 작성
계약이 있으면 내부 구현을 바꿔도 외부 영향 추적 가능
| 구분 | 역할 |
|---|---|
| 필수 인자 | 누락되면 호출 오류 |
| 선택 인자 | undefined 가능성을 구현부가 처리 |
| 반환 타입 | 명시하면 실수한 return을 빠르게 발견 |
핵심 함수 타입은 문서가 아니라 컴파일러가 확인하는 API 계약이다.