반응형
네임스페이스 선언과 모듈 선언의 차이점은 무엇입니까?
TypeScript 1.5에서는 명명법이 변경되었습니다."내부 모듈"은 이제 "이름 공간"입니다."외부 모듈"은 이제 단순한 "모듈"입니다.
라는 인상을 받았습니다.declare module
더 이상 사용되지 않으며 다음으로 대체됩니다.declare namespace
하지만 탐색할 때는node_modules\@types\node\index.d.ts
나는 둘 다 볼 수 있습니다.declare module
그리고.declare namespace
사용:
declare namespace NodeJS {
export var Console: {
prototype: Console;
new(stdout: WritableStream, stderr?: WritableStream): Console;
}
...
declare module "buffer" {
export var INSPECT_MAX_BYTES: number;
var BuffType: typeof Buffer;
var SlowBuffType: typeof SlowBuffer;
export { BuffType as Buffer, SlowBuffType as SlowBuffer };
}
왜 그럴까요? 뭐가 달라요?
외부 모듈(ES6 모듈)은 여기서 작동하지 않는 것으로 알고 있습니다.
TS에서 모듈을 지정하는 두 가지 방법이 있습니다.
declare module "buffer" {} // with quotes
그리고.
declare module buffer {} // without quotes
전자(따옴표 포함)는 외부 모듈(ES6 모듈)을 의미하며, 현재 사용되고 있습니다..d.ts
여러 ES6 모듈을 하나의 파일에 저장하는 파일:
declare module "buffer" {}
declare module "fs" {}
후자(따옴표 없음)는 네임스페이스로 사용되었으며 현재 다음으로 대체되었습니다.
declare namespace buffer {}
다음 인용문에서:
TypeScript 1.5에서는 명명법이 변경되었습니다."내부 모듈"은 이제 "이름 공간"입니다."외부 모듈"은 이제 단순한 "모듈"입니다.
"내부 모듈"은 1.5 이전에 사용되었기 때문에 따옴표가 없는 모듈입니다.
자세한 내용은 이 문제를 참조하십시오.
언급URL : https://stackoverflow.com/questions/41932585/what-is-the-difference-between-declare-namespace-and-declare-module
반응형
'programing' 카테고리의 다른 글
설치 폴더에 대한 MariaDB를 쿼리하시겠습니까? (0) | 2023.06.25 |
---|---|
공백 충돌 없이 병합 (0) | 2023.06.25 |
SELECT FOR XML 쿼리에서 반환된 열 이름을 선택하는 방법은 무엇입니까? (0) | 2023.06.20 |
Firebase가 현재 사용자를 제거합니다. (0) | 2023.06.20 |
ID로 그룹화된 후 열 값을 기준으로 행을 카운트하는 방법 (0) | 2023.06.20 |