我正试图绕着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.module
和module
是否使用相同。有人可以向我解释一下吗?
答案 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的文档更好。