file1.ts
namespace test {
export class AA {}
}
file2.ts
/// <reference path="file1.ts" />
import * as express from "express"; // without this line it works
namespace test {
export class BB {
constructor(a:AA){
var r = express.Router();
...
}
}
}
如果我评论上面的导入行,代码会编译,但表示导入缺失。如果我继续导入,我会
enter code hereerror TS2304: Cannot find name 'AA'
知道如何解决这个问题吗?
答案 0 :(得分:1)
您正在混合所谓的“内部”和“外部”打字稿模块(http://www.typescriptlang.org/Handbook#modules)。
“import”keywoard告诉编译器你正在使用“外部”方法。在这种情况下
file1.ts - 导出内容
module test {
export class AA {}
}
export = test;
file2.ts - 导入您的测试模块
import * as express from "express"; // without this line it works
import { AA } from "test"
module test {
export class BB {
constructor(a:AA){
var r = express.Router();
...
}
}
}
这在VS2015中对我有用:
文件“test.ts”:
namespace test {
export class AA {
prop: string;
}
}
export = test;
file“consumer.ts”:
import { AA } from "test";
namespace test {
export class BB {
constructor(a: AA) {
a.prop = "some val";
}
}
}