반응형
네임스페이스 선언과 모듈 선언의 차이점은 무엇입니까?
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 |