Typescript+AngularJS+没有默认导出的Webpack模块

Typescript+AngularJS+Webpack modules without default export

我正在使用 Webpack 将 AngularJS 与 Typescript 捆绑在一起(建议使用默认设置 here)并且我不能包含没有默认导出的模块,例如 ui -bootstrap。 ui-router 等模块没有这样的问题,因为它们的类型提到了默认导出。

JS 代码有效:

import * as angular from 'angular';
import router from 'angular-ui-router';
import uibootstrap from 'angular-ui-bootstrap';

angular.module('app', [uirouter, uibootstrap]);

然而在 Typescript 中的相同代码(目标:es6,模块:es6,所有设置与 webpack guide 中提到的设置相同)会出现错误:

Module "node_modules/@types/angular-ui-bootstrap/index" has no default export.

改用 angular.module('app', [uirouter, 'ui.bootstrap']); 会引发 'ui.bootstrap' 未找到错误。

您可以在 tsconfig.json 中将 allowSyntheticDefaultImports 设置为 true 以继续导入 import uibootstrap from 'angular-ui-bootstrap';,就像 angular-ui-bootstrap 具有默认导出一样。

"compilerOptions": {
    "allowSyntheticDefaultImports": true
}

似乎使用简单的 import 'angular-ui-router' 就可以了。