我正在尝试将一些js代码迁移到typescript。 具体来说,我在使用AlertifyJs时遇到了麻烦。现在Alertify似乎有很多东西。
现在我可以在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**
}
}
}
答案 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(...)