升级到带有 TypeScript 3.2.4 的 Angular 7,现在每当我编译时都会得到以下信息:
import swal from 'sweetalert';
swal({ ... });
node_modules/sweetalert/typings/sweetalert.d.ts(4,9) 中的错误:错误 TS2403:后续变量声明必须具有相同的类型。 变量 'swal' 的类型必须是 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")',但这里的类型是 'SweetAlert'。
如果我从...编辑node_modules/sweetalert/typings/sweetalert.d.ts
import swal, { SweetAlert } from "./core";
declare global {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
export default swal;
export as namespace swal;
... 到 ...
import swal, { SweetAlert } from "./core";
export default swal;
export as namespace swal;
...它开始工作。
有任何想法吗?
同样的问题,同样的情况。
但是,我注意到只需注释掉export as namespace swal;
也可以编译。 我一直在查看 TypeScript 更新日志以寻找任何线索......
同样的问题,同样的情况。
但是,我注意到只需注释掉
export as namespace swal;
也可以编译。 我一直在查看 TypeScript 更新日志以寻找任何线索......
同样的问题
我使用了这个解决方案
但我不认为这个解决方案是正确的。
同样的问题。
也是同样的问题。 因此 CI 构建失败。
在 OpenBSD 下运行时,我遇到了同样的问题。 是的,我知道不是主流操作系统,但是可用的 TypeScript 版本使得任何带有 Sweetalert 的东西都无法使用:(
在 OpenBSD 下运行时,我遇到了同样的问题。 是的,我知道不是主流操作系统,但是可用的 TypeScript 版本使得任何带有 Sweetalert 的东西都无法使用:(
@t4t5你能看看这个问题吗?
也在 Angular 7 中体验到这一点
除了手动编辑定义文件之外,还有其他解决方法吗? 在每次克隆/ npm 安装后记住这样做变得有点麻烦。
@bogdan-calapod 以下是我一直在做的一种解决方法,以便我们的 CI 构建不会失败:
sweetalert.min.js
)。sweetalert.min.js
src/assets/scripts
放在 Angular 应用程序中的src/assets/scripts/sweetalert.min.js
至scripts
入门angular.json
declare var swal: any;
。swal
在文件中的任何位置使用 Sweetalert,即return swal({...})
npm uninstall sweetalert --save
大家好,
节省自己的精力并使用sweetalert 2 https://sweetalert2.github.io/
此问题有任何更新吗?
大家好,
节省自己的精力并使用sweetalert 2 https://sweetalert2.github.io/
这是否支持 3 个或更多按钮?
@DVGalarza这种解决方法对我不起作用。 ReferenceError:“swal 未定义”是我得到的。
@alvarofelipe12在您尝试使用 'swal' 的文件中,您是否将declare var swal: any;
到文件顶部(在导入下方)? 如果是这样,还要检查sweetalert.min.js
的“脚本”部分中是否正确引用了angular.json
。
升级到带有 TypeScript 3.2.4 的 Angular 7,现在每当我编译时都会得到以下信息:
import swal from 'sweetalert'; swal({ ... });
node_modules/sweetalert/typings/sweetalert.d.ts(4,9) 中的错误:错误 TS2403:后续变量声明必须具有相同的类型。 变量 'swal' 的类型必须是 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")',但这里的类型是 'SweetAlert'。
如果我从...编辑
node_modules/sweetalert/typings/sweetalert.d.ts
import swal, { SweetAlert } from "./core"; declare global { const swal: SweetAlert; const sweetAlert: SweetAlert; } export default swal; export as namespace swal;
... 到 ...
import swal, { SweetAlert } from "./core"; export default swal; export as namespace swal;
...它开始工作。
有任何想法吗?
我的替代方法是将 const swal 重命名为 const _swal
import swal, { SweetAlert } from "./core";
声明全局{
const _swal: SweetAlert;
const sweetAlert: SweetAlert;
}
导出默认值;
导出为命名空间 swal;
你好!,同样的问题
我通过覆盖 sweetalert 类型来解决这个问题。 我在 src 目录中添加了一个名为src/node_modules/sweetalert/index.d.ts
//this file is needed because the sweetalert typings need to be overwritten because they are broken
//the real fix here is to stop using sweetalert
declare global {
const _swal: any;
const sweetAlert: any;
}
export default _swal;
export as namespace swal;
通过更改此行解决了它:
import swal from 'sweetalert';
到:
const swal = require('sweetalert');
或(使用界面):
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
我在 Angular 10 中遇到了同样的问题。是的,根据我的 IDE,问题似乎出在sweetalert.d.ts
中,有一个错误,所以我认为评论它不是一个糟糕的解决方案:
@drmencos是用于 Node.js 的吗? require
在 Angular 10 中对我不起作用。
在文件中:node_modules>sweetalert>typings>sweetalert.d.ts
评论:const swal:SweetAlert;
从“./core”导入 swal,{SweetAlert};
声明全局{
// const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
导出默认值;
导出为命名空间 swal;
将import 'sweetalert'
更改require('sweetalert')
对我有用。
最有用的评论
大家好,
节省自己的精力并使用sweetalert 2 https://sweetalert2.github.io/