我正在努力思考 Typescript、AngularJS 和 ngMock 部分。我见过像这样在单元测试开始时注入(inject)模块的代码。
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
是否相同使用。谁能给我解释一下?
最佳答案
I'm not sure if I understand the notation in the definition file to understand if angular.mock.module and module are used the same. Can someone explain this to me?
定义有误。下面两个应该是一样的: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 库的文档更好。
关于javascript - 使用 Typescript + ngMock 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964829/