我是编写TypeScript定义文件的开始,想知道以下两个结构之间的区别:
declare module activedirectory
和
declare module "activedirectory"
由于某种原因,前者允许我在我的一个Angular服务中使用任何类而没有任何类型的导入声明(例如import activedirectory = require('activedirectory')
。每当我在我的代码中声明后者时,它会破坏对我内部的引用模块,例如:
module myModule.Services {
'use strict';
export class MyService implements myModule.Interfaces.IMyService {
.....
无法再找到“myModule.Interfaces”命名空间。
答案 0 :(得分:9)
TypeScript团队认识到这种混淆,这就是为什么没有引号的模块现在称为名称空间。
展望未来,内部模块将被称为“命名空间”。我们选择使用这个术语是因为这种形式的工作方式与其他语言的名称空间之间的密切关系[...] http://blogs.msdn.com/b/typescript/archive/2015/07/20/announcing-typescript-1-5.aspx
引用的模块是ES6模块,需要使用import 'activedirectory';