无法在打字稿上设置sweetalert选项

时间:2017-11-28 15:38:57

标签: angular typescript sweetalert

已安装的软件包:

"@angular/core": "^4.0.0"
"typescript": "~2.3.3"
"sweetalert": "^2.0.8"
"@types/sweetalert": "^1.1.28"

我如何使用sweetalert:

import * as swal from "sweetalert";
//...
doSomething() {
    const options = {
        title: "Are you sure?",
        text: "Some text here!",
        type: "warning",
        showCancelButton: true,
        showConfirmButton: true
    };
    swal(options, (remove) => { });
}

我收到了这些错误:

  • VSC智能感知:
  

'类型的参数' {title:string; text:string; type:string;   showCancelButton:boolean; showConfirmButton:boolea ......'不是   可分配给'设置&amp ;; PromtModalSettings&#39 ;.
  输入' {title:string; text:string; type:string; showCancelButton:   布尔; showConfirmButton:boolea ......'不能分配给类型   ' PromtModalSettings&#39 ;.       财产类型'类型'是不相容的。         输入' string'不能分配类型' PromtType'。' at:' 101,14'来源:' ts'

  • TypeScript编译,但在浏览器控制台上,我得到了这个:
  

错误错误:SweetAlert:意外的第二个参数(函数(删除){...

我尝试将options类型设置为SweetAlert.Settings & SweetAlert.AlertModalSettings,但我无法访问命名空间SweerAlert,还尝试了any。他们都没有工作。

如何将这些选项设置为sweetalert?

TS type file.

3 个答案:

答案 0 :(得分:1)

Sweetalert不需要安装类型。它已经实施了。安装类型时,我在原始类型之间出现冲突,然后出错。我刚删除了@types/sweetalert,一切都像site中的示例一样有用。

答案 1 :(得分:1)

一个简单的解决方法是:

直接转到项目文件夹,然后转到\ node_modules \ sweetalert \ typings \ sweetalert.d.ts 在这里,您将找到此行

const swal: SweetAlert;

只需删除或评论它即可。 错误已排序。.

答案 2 :(得分:0)

为什么不简单地将选项转换为SweetAlertOptions而不是弄乱node_modules:

error CS8137: Cannot define a class or member that utilizes tuples because the compiler required type 'System.Runtime.CompilerServices.TupleElementNamesAttribute' cannot be found. Are you missing a reference?  
error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported