Website-Suche

angularjs - Angular-Unit-Test mit TypeScript: TS2304: Name 'module' kann nicht gefunden werden


Ich versuche meinen ersten Angular-Unit-Test in TypeScript zu schreiben und erhalte folgenden Fehler und kann nicht herausfinden, warum. Wenn jemand eine Idee hat, bitte lassen Sie es mich wissen.

TS2304: Name 'module' kann nicht gefunden werden.

Testcode:

/// <reference path="../typings/karma-jasmine/karma-jasmine.d.ts" />
/// <reference path="../typings/angularjs/angular-mocks.d.ts" />

describe("FooTest", () => {
    beforeEach(module("app"));

});

Ich benutze TSD (TypeScript Definition Manager), um meine TypeScript-Definitionen zu verwalten.

tsd.json

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "jquery/jquery.d.ts": {
      "commit": "ef32bff4d15782dbbabf99ecb17ba22119cc2bd2"
    },
    "angularjs/angular.d.ts": {
      "commit": "ef32bff4d15782dbbabf99ecb17ba22119cc2bd2"
    },
    "karma-jasmine/karma-jasmine.d.ts": {
      "commit": "ef32bff4d15782dbbabf99ecb17ba22119cc2bd2"
    },
    "jasmine/jasmine.d.ts": {
      "commit": "ef32bff4d15782dbbabf99ecb17ba22119cc2bd2"
    },
    "angularjs/angular-mocks.d.ts": {
      "commit": "ef32bff4d15782dbbabf99ecb17ba22119cc2bd2"
    }
  }
}

Ich benutze IntelliJ IDEA 14

Danke, Stefan

Antwort #1

Kürzlich hat das Angular-Team das globale Modul in angular-mocks kommentiert

//Use `angular.mock.module` instead of `module`, as `module` conflicts with commonjs.
//declare var module: (...modules: any[]) => any;

Um Ihren Test zum Kompilieren zu bringen, müssen Sie den vollständigen Namespace verwenden, also angular.mock.module

Beispiel :

beforeEach(function () {
  angular.mock.module('app');
}

Antwort #2

vor :

beforeEach(function () {
  module('app');
}

nach :

beforeEach(function () {
  angular.mock.module('app');
}

Verwandte Artikel