아이템 30. 문서에 타입 정보를 쓰지 않기

아이템 30. 문서에 타입 정보를 쓰지 않기

아이템 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