为什么导入TypeScript模块不允许现有模块扩展?

时间:2013-06-20 13:49:00

标签: typescript amd

我有一个TypeScript外部定义文件(foo.d.ts):

declare module foo {
    export class bar {
    }
}

然后我就这样使用它(在baz.ts中):

/// <reference path="foo.d.ts" />
module foo {
    class baz extends bar {
    }
}

到目前为止一切顺利。但是当我导入一些编译为AMD模块编译的其他TypeScript文件时:

module foo {
    class baz extends bar { // Error: could not find symbol "bar"
    }
}

import T1 = module("test1"); // Removing this line resolves the compilation error

导入的AMD文件很简单:

export var NAME = "NAME";

有人知道这是否有意?为什么import会以这种方式破坏我的代码?

1 个答案:

答案 0 :(得分:3)

我认为打字稿编译器存在一个错误。

请尝试以下方式, 删除了参考 “reference path =”foo.d.ts“ 并添加

import f = module("foo.d");
module foo {
    class baz extends f.foo.bar {
    }
}

我不确定输出.js是怎样的。但通过这样做,它不会在视觉工作室中出错。