在vs.net 2013中使用TypeScript时,我正在编写相同的自定义模块m1文件:
MyClass1.ts:
module m1{
export class MyClass1{
test1(){
}
}
}
MyClass2.ts:
/// <reference path="MyClass1.ts" />
import Flux = require("flux");
module m1{
class MyFluxDispatcher extends Flux.Dispatcher<any>{
...
}
export class MyClass2{
test2(){
var c1 = new m1.MyClass1(); <--- Error 81 Property 'MyClass1' does not exist on type 'typeof m1'.
}
}
}
如何在多个文件中编写相同的自定义模块并导入其他模块? 我将使用requirejs:
main.js:
import m1 = require("m1");
var a1 = new m1.MyClass2();
...
in html:
<script src="~/Scripts/require.js" data-main="/js/main.js"></script>
答案 0 :(得分:0)
当使用commonjs / require时,以你自己的方式使用模块是没用的,因为每个文件都是自己的“模块”。需求网站上有一个关于CommonJS的部分,您可以在这里阅读更多相关信息。还要了解更多关于CommonJS的信息,因为它与需求和打字稿的工作方式密切相关。
做这样的事情对你来说应该更好:
MyClass1.ts
export default class MyClass1 {
test1() {
}
}
MyClass2.ts
import MyClass1 from "./MyClass1.ts";
export default class MyClass2 {
test2() {
var c1 = new MyClass1();
}
}
如果您搜索它,有很多关于此的信息,一个好的起点是查看CommonJS和RequireJS,并了解它是如何工作的。希望这有帮助,如果您有任何疑问,请回到mi。