从打字稿中调用alertifyjs

时间:2016-07-26 06:52:56

标签: typescript alertifyjs

我正在尝试将一些js代码迁移到typescript。 具体来说,我在使用AlertifyJs时遇到了麻烦。现在Alertify似乎有很多东西。

  1. a discontinued project by fabien-d
  2. 拾起并继续alertifyjs dot org
  3. 由MohammadYounes alertifyjs dot com
  4. 选中

    现在我可以在DefinitelyTyped上找到(1)的d.ts,但其他人没有。 我想用(3)!

    我想以某种方式直接打包或直接打电话给 alertify.confirm(“你去”,“女孩”); 来自ts。

    我该如何实现?

    由于

    PS:vs2015中的编码

    编辑: 以为我会为你提供一个美丽的书呆子,上面有我所得到的代码片段

    ///<reference path="../typings/jquery/jquery.d.ts"/>
    ///<reference path="../typings/toastr/toastr.d.ts"/>
    
    module mymodule.Web {
    export class CommonTools {
    
        constructor() {
            toastr.options.closeButton = false;
        }
    
        showInfo(title: string, message: string) {
            toastr.info(message, title);
        }
        showConfirm(title: string, message: string) {
         //**code goes here**
        }
    }
    }
    

3 个答案:

答案 0 :(得分:2)

最简单(也是最不安全或优雅)的解决方案可能是在打字稿的全局范围内添加它。

declare var alertify: any;

像这样,typescript会知道alertify变量。

如果您更精确,可以使用您想要使用的方法引入自己的(例如)AlertifyJSStatic接口,并将其作为alertify变量的类型。

interface AlertifyJSStatic {
  confirm(a: string, b:string);
}

declare var alertify: AlertifyJSStatic;

有时,快速添加自己的需求比在d.ts库(和版本)中丢失更容易。

答案 1 :(得分:0)

*我看到有一个已接受的答案,但这是我的解决方案。

对于我的角度项目,在使用npm安装后,在TS文件的导入部分中,复制以下内容......

import * as alertifyJs from 'alertifyjs';

从那里开始,用法就是你想要的。

alertifyJs.confirm('alertify is working');
希望这会有所帮助。欢呼声

答案 2 :(得分:0)

如果您在全局安装了该库,请像这样声明它

declare global {
  interface Window {
    alertify: {
      success: Function;
      [key: string]: Function; // for all others
    };
  }
}

现在安全使用

window.alertify.success(...)