我在打字稿2.4.1中遇到import
和module
的问题。我有两个文件:
testAdd.ts:
module mymodule {
export class myClassAdd {
static add(left: number, right: number): number {
return left + right;
}
}
}
testCallAdd.ts:
//import 'someLibrary';
module mymodule {
export class myClassCallAdd {
static callAdd(): void {
let result: number = mymodule.myClassAdd.add(3, 4); //error here
}
}
}
这段代码现在编译得很好。我发现如果我尝试使用import
关键字导入某个库,我会开始出错。在testCallAdd.ts
中,如果我在第一行取消注释导入,则会收到一条错误消息,指出mymodule类型 myClassAdd
我不明白为什么我会收到此错误或如何修复它。 import
语句似乎正在做一些事情来防止编译器看到testAdd.ts
。有人可以解释出了什么问题以及如何解决它吗?
这是因为我有一个工作正常的角度网站,但我想用茉莉花测试它。我无法弄清楚如何设置它以便角度块和单元测试都可以访问代码。
答案 0 :(得分:1)
对于您的情况,您需要使用三重斜杠指令:/// <reference types="somelibrary" />
请参阅:http://www.typescriptlang.org/docs/handbook/triple-slash-directives.html
但是,最好建议使用模块系统,而不是名称空间(这就是你正在做的事情)。
您可以在此处了解有关模块和命名空间的更多信息: http://www.typescriptlang.org/docs/handbook/namespaces-and-modules.html
如果您确实打算使用命名空间,那么从TypeScript 1.5开始,语法module mymodule { ... }
将被弃用并替换为namespace mymodule { ... }
http://www.typescriptlang.org/docs/handbook/namespaces.html https://github.com/unional/typescript-guidelines/blob/master/pages/default/namespaces-and-modules.md