我在使用 es5 时收到此错误。 但它在 es6 上运行良好。
Sweetalert 版本:2.1.0
配置文件
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2015",
"dom"
]
}
}
import swal from 'sweetalert';
swal({
text: 'Your request has been processed successfully.',
icon: 'success'
}).then((value) => {
if (value) {
console.log(value);
}
});
当我取消注释以下几行以便我的项目与 IE9、10 和 11 兼容时,我开始遇到此错误。位于polyfills.ts
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
import 'core-js/es7/array';
按照您的建议将“目标”更改为 es6 会破坏我在 IE 11 上的应用程序,因为 IE 11 显然尚不支持 es6 箭头函数,并且编译我的项目会引发错误。
+1
我有同样的错误!
我也是。
我通过切换到 sweetalert 2 解决了这个问题。我不确定它是否由同一团队开发(如果不是,我很抱歉宣传)。
希望它对那些有同样问题的人有用,如果这个问题得到解决,我很乐意切换回 swal 1。
快乐编码!
大家好。
这似乎与 Angular CLI 中的这个错误有关,其中默认导出在开发中的处理方式不同。 他们似乎在 v6.0.0-beta.4 中修复了它
运行ng serve --prod
时是否仍然出现任何错误?
或者,您可以使用这种有点脏的解决方法:
import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;
swal('test');
@lionralfs它工作正常。
@lionralfs你是一个真正的狮子工作正常。
npm 版本不导出default
属性,因此类型错误。 类型表明它应该被视为 ES 模块,但 npm 版本是一个 CommonJS 模块。
文档建议在这种情况下使用export =
而不是export default
: https: //www.typescriptlang.org/docs/handbook/modules.html#export --and-import--require
匹配的导入如下所示:
import swal = require("sweetalert");
是的,它是非标准语法,这会给以 ES 模块为目标的用户带来问题。 通过启用综合导入或使用import * as swal
语法可以解决这个问题,但正确的解决方案是纠正类型或简单地将module.exports.default = module.exports
到主 JS 文件的末尾,以便人们可以将其作为 ES 模块导入。
伟大的! 我受够了
从 ... 编辑 node_modules/sweetalert/typings/sweetalert.d.ts
`import swal, {SweetAlert} from" ./core ";
声明全局{
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}导出默认值;
导出为命名空间 swal;`
到 ...
`import swal, {SweetAlert} from" ./core ";
导出默认值;
导出为命名空间 swal;`
我在 ReactJS 上遇到了同样的问题,但是使用https://github.com/sweetalert/sweetalert-with-react修复了它
最有用的评论
大家好。
这似乎与 Angular CLI 中的这个错误有关,其中默认导出在开发中的处理方式不同。 他们似乎在 v6.0.0-beta.4 中修复了它
运行
ng serve --prod
时是否仍然出现任何错误?或者,您可以使用这种有点脏的解决方法: