AngularJS + TypeScript: Uncaught TypeError: Cannot read property 'module' of undefined

AngularJS + TypeScript: Uncaught TypeError: Cannot read property 'module' of undefined

我正在尝试在 AngularJS 1.x 应用程序中使用 TypeScript。

我的应用程序已经使用 Webpack 作为模块加载器,所以我将其配置为处理 TypeScript 编译(在将所有 *.js 源文件重命名为 *.ts 之后)并且我设法让它工作。所以它编译没有错误并生成我的 JavaScript 输出文件。

唯一的问题是,当我 运行 浏览器上的应用程序无法运行时,我收到此控制台错误:

Uncaught TypeError: Cannot read property 'module' of undefined

以及:

Uncaught Error: [$injector:modulerr] Failed to instantiate module myModuleName due to: Error: [$injector:nomod] Module 'myModuleName' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

我的猜测是对象 angular 由于某种原因为 null,当我尝试访问 angular.module.

时它会报错

我不明白为什么会这样,因为当我在代码中使用import angular from 'angular/angular';时它编译成功。

完整的源代码可用 here

Webpack 输出:

Hash: 824157db8ed6acf47fc1 Version: webpack 2.2.1 Time: 2242ms Asset Size Chunks Chunk Names othello-bundle.js 1.27 MB 0 [emitted] [big] app othello-bundle.js.map 1.51 MB 0 [emitted] app [0] ./~/angular/angular.js 1.24 MB {0} [built] [5] ./app/services/othello_AI.ts 8.65 kB {0} [built] [6] ./app/services/othello_handler.ts 9.3 kB {0} [built] [7] ./app/index.ts 723 bytes {0} [built] + 4 hidden modules

我终于找到了解决办法。

使用 TypeScript 时,AngularJS 需要使用以下方式导入:

import * as angular from 'angular';

问题是我仍然像使用 es6 一样导入它:

import angular from 'angular';