使用import break来扩展内部模块

时间:2013-04-09 18:48:49

标签: typescript

这是我的情景。我在多个文件中定义了一个“我的”模块。我使用参考路径包括包含文件。但是,当我在其中一个文件中使用导入时,内部模块中的名称不再解析。我需要明确引用模块名称..

a.ts:

module mine {
    export class A {
    }
}

e.ts:(我不拥有此内容,通常是从网上下载的)

declare module "ext" {
    export var xyz;
};

b.ts:

/// <reference path="a.ts" />
/// <reference path="e.ts" />
import ext = module("ext");
module mine {
    export class B extends A {
    }
}

当我使用'tsc --target ES5 b.ts'编译b.ts时,我收到以下错误。

E:/Prem/src/redsnake/try/b.ts(5,27): Expected type
E:/Prem/src/redsnake/try/b.ts(5,27): Base type must be interface or class

但是,如果我在b.ts中删除import语句,一切正常。我的问题是,如何在导入另一个外部模块时扩展内部模块。

我添加了e.ts作为解释,但技术上e.ts可以来自我通过tsd或从web下载的外部打字稿定义文件。我特别关注的问题是node.js断言模块。

1 个答案:

答案 0 :(得分:4)

这是TypeScript编译器中的一个错误 - 您的代码(或者至少应该是)很好。这个问题刚好在0.9分支中修复。