2015-12-07 79 views
0

当vs.net 2013使用打字稿,我书面方式相同的自定义模块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(); 
... 

在HTML:

<script src="~/Scripts/require.js" data-main="/js/main.js"></script> 

回答

0

使用模块与CommonJS的工作时,你的方式是怎么样的无用/要求因为每个文件都是自己的“模块”。在需要的网站上有关于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(); 
    } 
} 

有很多有关此如果你搜索它,一个好的开始是看Common JS和RequireJS,只是了解它是如何工作的。希望这会有所帮助,如果您有任何问题,请回到英里。

+0

但我需要在互联网浏览器上运行AMD JS,CommonJS用于服务器端。 我希望在同一个模块中每个类的Typescript One File。 – Flash