네임스페이스, 클래스, enum, 인터페이스, 타입 별칭, 함수, 변수는 같은 이름으로 여러 번 선언할 수 있는 것이 있고, 없는 것이 있습니다. 인터페이스나 네임스페이스는 같은 이름으로 여러 개 존재할 때 병합되고, 여러 번 선언할 수 있는 대표적인 예입니다. 함수는 오버로딩되므로 여러 번 선언할 수 있습니다.

    이를 표로 정리해보았습니다.

    ▼ 표 2-5 같은 이름의 다른 선언과 병합 가능 여부

    병합 가능 여부

    네임스페이스

    클래스

    enum

    인터페이스

    타입 별칭

    함수

    변수

    네임스페이스

    O

    O

    O

    O

    O

    O

    O

    클래스

    O

    X

    X

    O

    X

    O

    X

    enum

    O

    X

    O

    X

    X

    X

    X

    인터페이스

    O

    O

    X

    O

    X

    O

    O

    타입 별칭

    O

    X

    X

    X

    X

    O

    O

    함수

    O

    O

    X

    O

    O

    O

    X

    변수

    O

    X

    X

    O

    O

    X

    X

    이 표를 외우기는 쉽지 않습니다. 따라서 인터페이스, 네임스페이스 병합이나 함수 오버로딩 같이 널리 알려진 경우를 제외하고는 웬만하면 같은 이름으로 여러 번 선언하지 않는 것이 좋습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.