앰비언트 선언도 선언병합이 된다.
앰비언트 선언 (declare)
declare namespace NS {
const v: string; // 변수에도 타입만 있고 값을 대입하지 않음
}
declare enum Enum {
ADMIN = 1
}
declare function func(param: number): string;
declare const variable: number;
declare class C {
constructor(p1: string, p2: string);
}
// 외부 파일에 실제 값이 존재한다고 믿기 때문에 아래처럼 값으로 사용 가능
// 단 값이 없으면 에러 발생
new C(func(variable), NS.v); 이들은 선언할 때 네임스페이스나 타입 또는 값으로 사용될 수 있다.
유형
네임스페이스
타입
값
같은 이름의 다른 선언과 병합 가능 여부
병합 가능 여부
네임스페이스
클래스
enum
인터페이스
타입 별칭
함수
변수
선언 병합을 활용하면 좋은 예
클래스의 new 연산자를 사용하지 않고 생성하게 만드는 코드
Last updated