显然,你可以在 TypeScript 中说 'export import xx = module("xx")'。
但是,这是什么意思?我在规范中没有看到。
显然,你可以在 TypeScript 中说 'export import xx = module("xx")'。
但是,这是什么意思?我在规范中没有看到。
良好的观察力。
这是一种组合技术,它使整个导入的模块就像在封闭模块中创建的外部模块一样。这是一个简短的示例:
module MyModule {
export class MyClass {
doSomething() {
}
}
}
declare module EnclosingModule {
export import x = module(MyModule);
}
var y = new EnclosingModule.x.MyClass();
export 关键字本身使模块成为外部模块。在这种情况下,它正在制作MyModule
封闭模块的外部模块,即使它最初不是在封闭模块内部定义的。
为什么?
我想这是一种重用模块的便捷方式,而不是在不同的上下文中重复它们 - 使它们可以在多个看起来合乎逻辑的地方访问。
从 0.8.1.1 开始,当您导出扩展在其他模块中声明的类的类时,您显然需要使用此语法。
例如,在 0.8.1 中,您可以这样说:
import mUiBase = module("../UiBase");
export class BaseViewModel extends mUiBase.UiBase {
}
但是在 0.8.1.1 中,这会给您一个错误“导出的类从私有模块扩展类”,因此您需要这样做:
export import mUiBase = module("../UiBase");
export class BaseViewModel extends mUiBase.UiBase {
}
大概这是故意的,而不仅仅是一个错误。