아이템 30. 문서에 타입 정보를 쓰지 않기 #
주석을 통해 타입에 대해 설명하곤 한다.
/**
* 0개 또는 1개의 매개변수를 받습니다.
* 매개변수가 없을 때는 표준 전경색을 반환합니다.
*/
function getForegroundColor(page?: string) {
return page === 'login' ? {r: 127, g: 127, b: 127} : {r: 0, g: 0, b: 0};
}
코드와 주석의 정보가 맞지 않는다.
둘 중 어느것이 맞는지 판단해야하는 상황이 생긴다.
코드를 수정하면서 함께 수정하지 않는 경우가 많다.
함수의 입력, 출력을 코드(타입)로 표현하는 것이 주석보다 더 나은 방법이다. #
타입을 사용하여 코드를 분명하게 작성하는 것이 더 좋은 ‘정보 제공’ 방법이다.
function getForegroundColor(page?: string): Color {
// ...
}
추가적인 예시 & 권장사항은 다음과 같다. #
변경하면 안되는, 변경되지 않는 값이라면
readonly
를 쓸 수도 있다.변수명에 타입 정보를 넣지 않도록 한다.
ageNumber
대신age: number
와 같이 작성할 수 있다.
변수명에 헷갈리고 타입으로 표현하기 힘든 것들(‘단위 정보’ 같은)을 포함하는 것은 고려해볼만 하다.
timeMs
,timeNs
요약 & 정리 #
- 주석, 변수명에 타입 정보를 적는 것은 피해야 한다.
- 타입이 명확하지 않는 경우, 변수명에 ‘단위 정보’를 포함하는 것은 고려해볼만 하다.
timeMs
,timeNs