使用TypeScript导入类中的对象

最后发布: 2014-04-10 12:19:14


问题

我是Javascript和TypeScript的新手,我想知道是否可以进行某种依赖注入(也许使用require.js)。

我在同一模块中有两个班

module MyWebApp {
    export class ViewRouter {
           ... some class methods
    }
}

module MyWebApp {
    export class MyViewModel{
        private router: ViewRouter;

        constructor(router:ViewRouter router) {
           this.router = router;
        }
    }
}

每次需要MyViewModel时,都必须实例化ViewRouter var vm = new MyViewModel(new ViewRouter());

有没有办法解决? 我以为Require.js可以帮助我解决问题,但是我不知道如何在TypeScript中使用它。

谢谢。

javascript requirejs typescript
回答

如果您每次都想要一个实例,则可能应该这样做:

class MyViewModel{
    private router: ViewRouter;

    constructor() {
       this.router = new ViewRouter();
    }
}

现在,如果您想要一个“单个” 共享实例,则可以执行以下操作:

module MyWebApp {
    export class ViewRouter {
           ... some class methods
    }

    export var router = new ViewRouter();       
}

并使用router

使用RequireJS可以为您做同样的事情,但是原理不会改变。 RequireJS不是一个IOC容器。

那里有很多javascript IOC容器,对此我没有建议: Google搜索