Programming/TypeScript
[TypeScript] 문서에 타입 정보를 쓰지 않기
앵도라지
2023. 4. 25. 14:02
이 글은 이펙티브 타입스크립트 '아이템 30 문서에 타입 정보를 쓰지 않기'를 정리한 내용입니다.

“코드와 주석이 맞지 않는다면, 둘 다 잘못된 것이다”
- 타입스크립트의 타입 구문 시스템은 간결하고, 구체적이며, 쉽게 읽을 수 있도록 설계되었다.
- 즉, 함수의 입력과 출력의 타입을 코드로 표현하는 것이 주석보다 더 나은 방법이다.
- 타입 구문은 타입스크립트 컴파일러가 체크해주기 때문에, 절대로 구현체와의 정합성이 어긋나지 않는다.
- 누군가 강제하지 않는 이상 주석은 코드와 동기화되지 않는다.
- 예를 들어, 함수를 변경했을 때 주석을 갱신하는 것을 강제하지 않는다면 주석을 변경하지 않는 일이 발생할 수 있다.
- 하지만, 타입구문은 타입스크립트 타입 체커가 타입 정보를 동기화하도록 강제한다.
결과적으로 주석 대신 타입 정보를 작성한다면 코드가 변경된다 하더라도 정보가 정확히 동기화 된다.
- 실제로 프로젝트에 적용한다면, ageNum이라는 변수명보다, age 라는 변수명을 설정하고 해당 타입을 number로 명시하는 것이 좋다.
- 하지만, 단위가 있는 숫자는 예외다.
- time / temperature 등의 경우 timeMs / temperatureC로 작성하는 것이 명확하다.
- 하지만, 단위가 있는 숫자는 예외다.
요약
- 주석과 변수명에 타입 정보를 적는 것을 피해야 한다. 타입 선언이 중복되는 것으로 끝나면 다행이지만, 최악의 경우는 타입 정보에 모순이 발생하게 된다.
- 타입이 명확하지 않은 경우는 변수명에 단위 정보를 포함하는 것을 고려하는 것이 좋다.