使用Typescript + ngMock模块

时间:2014-07-25 21:32:50

标签: javascript angularjs typescript

我正试图绕着Typescript,AngularJS和ngMock部分。我已经看到了在单元测试开始时注入模块的代码。

beforeEach(angular.mock.module("myApp"));

我需要提供另一项服务,以便这样做:

beforeEach(module("myApp", function($provide) {
    $provide.value("myService", {
        ...
    });
}));

但如果我做了

beforeEach(angular.mock.module("myApp", function($provide) {
    $provide.value("myService", {
        ...
    });
}));

Typescript编译器抱怨angular.mock.module只接受一个参数。那么在上面的第一个片段中,它使用的是什么模块?当我进入定义时,它在angular-mocks.d.ts中说:

declare var module: (...modules: any[]) => any;

那么这里发生了什么?我不确定我是否理解定义文件中的符号,以了解angular.mock.modulemodule是否使用相同。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:2)

  

我不确定我是否理解定义文件中的符号,以了解angular.mock.module和模块是否使用相同。有人可以向我解释一下吗?

定义中有错误。以下两个应该相同:https://github.com/borisyankov/DefinitelyTyped/blob/master/angularjs/angular-mocks.d.ts

    // global module
    declare var module: (...modules: any[]) => any;

    // from angular.mock.module
    module(...modules: string[]): any;
    module(...modules: Function[]): any;
    module(modules: Object): any;

如果您获得最新的定义文件,则修复后:https://github.com/borisyankov/DefinitelyTyped/pull/2564

有另一面:在很多情况下,定义甚至比JavaScript lib的文档更好。