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'
就可以了。
我正在使用 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'
就可以了。