Typescript with jQuery UI Widgets -实现调用签名
Typescript with jQuery UI Widgets - Implementing call signatures
我有许多对话框在我的网站(登录对话框,注册对话框,联系对话框等),我试图使用Typescript建模。
jquery-ui d.s文件定义了一个Dialog接口:
interface Dialog extends Widget, DialogOptions, DialogEvents{ }
DialogOptions
和DialogEvents
中的所有内容都是可选的,所以没有问题,但是Widget接口定义了一些我不理解的呼叫签名:
interface Widget {
(methodName: string): JQuery;
(options: WidgetOptions): JQuery;
(options: AccordionOptions): JQuery;
(optionLiteral: string, optionName: string): any;
(optionLiteral: string, options: WidgetOptions): any;
(optionLiteral: string, optionName: string, optionValue: any): JQuery;
(name: string, prototype: any): JQuery;
(name: string, base: Function, prototype: any): JQuery;
}
当我尝试在类中实现这个接口时:
class LoginDialog implements Dialog {
}
编译器报错:
Class 'LoginDialog' declares interface 'Dialog' but does not implement it: Type 'Dialog' requires a call signature, but Type 'LoginDialog' lacks one.
我不明白如何实现这些"呼叫签名"或者它们应该做什么,事实上,我甚至不明白呼叫签名是什么。
编辑:我发现呼叫签名的一种有效用例是回调类型:
interface ICallback{
(param: string) : void;
}
function someMethod(callback: ICallback){
callback('a string'); //Good
callback(5); //Bad
}
然而,这个问题仍然存在,因为我找不到多个调用签名的用例,仍然不明白如何实现jquery-ui.d。对话框界面
如果您正在使用jQuery UI,您不需要实现任何这些接口,因为它们已经在jQuery UI中实现了。这些接口只是提供类型信息,用于调用现有的jQuery UI函数。
$( "#dialog" ).dialog();
如果没有jquery-ui.d.ts
,类型系统将不知道dialog()
函数,例如
相关文章:
- 'stepUp'对未实现接口HTMLInputElement的对象调用
- 类型错误:'单击'对未实现接口HTMLElement的对象调用
- 我正在尝试实现一个AJAX调用.我做错了什么
- Babel用“es2016”预设实现了尾调用优化
- Angularjs:错误:'追加'对未实现接口FormData的对象调用.jQuery.param/ad
- 使用JavaScript调用Shell脚本以实现自动化
- 如何实现 jQuery Ajax 调用的 Kendo 进度条
- 如何在进行 ajax 调用的情况下实现后退按钮
- 在未实现接口 XMLHttpRequest 的对象上调用错误“open”
- 类型错误:“replaceState”调用了未实现接口历史记录的对象
- TypeError: 'stepUp' 调用了一个未实现接口 HTMLInputElement ajax
- JavaScript 函数调用计时.实现这一点的最佳方法
- Javascript,如何实现从多个worker调用的“阻塞”函数
- 带有变量调用的谷歌地图API实现
- 获得404关于使用karma和jasmine对json文件进行ajax调用的自定义实现
- Promise A+实现:当调用then()并且Promise仍然挂起时该怎么办
- 如何在javascript中实现函数调用的任意链表
- 如何在 AngularJS 中使用 http 调用实现多个 ng 控制器
- "超过了最大调用堆栈大小“;在处理JS时实现Fractal工厂时出错
- Typescript with jQuery UI Widgets -实现调用签名