javascript - 使用 Typescript + ngMock 模块

标签 javascript angularjs typescript

我正在努力思考 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.modulemodule 是否相同使用。谁能给我解释一下?

最佳答案

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/

相关文章:

javascript - 如何在textarea中使用keydown事件?

javascript - 子列表中的清晰结果

typescript - vue-test-utils +wrapper.vm 的 typescript 类型

javascript - 电子电路图组件连接算法

javascript - 滚动一次调用函数

angularjs - 始终在 "Access-Control-Request-Headers"下添加自定义 HTTP header

html - 如何在我的 .ts 文件中获取 <div> 高度

node.js - 错误 TS7027 : Unreachable code detected in Angular2 TypeScript Service class

javascript - 无法在 Angular 2 中的 Google map 上设置 ZoomControlOptions

javascript - http.get 到包含动态值的 url