阅读this manual之后的这句话:
重要的是要注意在TypeScript 1.5中,命名法有 改变。 “内部模块”现在是“命名空间”。 “外部模块” 现在只是“模块”
我的印象是declare module
已不再使用,并被declare namespace
取代,但在浏览node_modules\@types\node\index.d.ts
时,我可以看到declare module
和{{1}使用:
declare namespace
为什么这样?有什么区别?
根据我的理解,外部模块(ES6模块)不在这里发挥作用。
答案 0 :(得分:7)
在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之前使用。
有关其他详细信息,请参阅this issue。