我有一个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
会以这种方式破坏我的代码?
答案 0 :(得分:3)
我认为打字稿编译器存在一个错误。
请尝试以下方式, 删除了参考 “reference path =”foo.d.ts“ 并添加
import f = module("foo.d");
module foo {
class baz extends f.foo.bar {
}
}
我不确定输出.js是怎样的。但通过这样做,它不会在视觉工作室中出错。