Angularjs 使用TypeScript进行角度单元测试:TS2304:找不到名称';模块';

Angularjs 使用TypeScript进行角度单元测试:TS2304:找不到名称';模块';,angularjs,intellij-idea,typescript,Angularjs,Intellij Idea,Typescript,我正试图用TypeScript编写我的第一个Angular单元测试,但我得到了以下错误,无法找到原因。如果有人有任何想法,请告诉我 TS2304:找不到名称“模块” 测试代码: /// <reference path="../typings/karma-jasmine/karma-jasmine.d.ts" /> /// <reference path="../typings/angularjs/angular-mocks.d.ts" /> describe("FooT

我正试图用TypeScript编写我的第一个Angular单元测试,但我得到了以下错误,无法找到原因。如果有人有任何想法,请告诉我

TS2304:找不到名称“模块”

测试代码:

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

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

});
我正在使用IntelliJ创意14

谢谢,Stefan我猜:

您正在使用
角度模拟.d.ts
,但我在任何地方都看不到
角度模拟.ts

d.ts
文件仅包含类型定义,而不包含实际实现。所以你们两个都需要


PS:我认为angular-mocks.ts只有.js版本:)

最近angular团队在angular mocks中评论了全局模块

//Use `angular.mock.module` instead of `module`, as `module` conflicts with commonjs.
//declare var module: (...modules: any[]) => any;
为了使您的测试能够编译,您需要使用完整的名称空间,所以angular.mock.module

例如:

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

beforeEach(function () {
  module('app');
}
之后:

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

只是不要在spec/mocks/d.ts文件上运行tsc?或定义
var模块:任意@对不起,我不明白你说的不要在spec/mocks/d.ts文件上运行tsc是什么意思?我正好遇到了这个问题,这个效果很好。谢谢我得到的问题是,angular没有一个属性“mock”,是否有一些定义文件我丢失了?我有已经在dt上的角度模拟,不确定我是否需要另一个我有角度模拟,最后的s,这是你得到的还是角度模拟?
beforeEach(function () {
  angular.mock.module('app');
}