1

我有一个 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以这种方式破坏我的代码?

4

1 回答 1

3

我认为打字稿编译器中有一个错误。

请尝试以下操作,删除参考“reference path="foo.d.ts" 并添加

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

我不确定输出 .js 将如何。但是通过这样做,它不会在视觉工作室中出现错误。

于 2013-06-20T14:18:46.000 回答