【发布时间】:2014-07-21 09:39:17
【问题描述】:
typeahead.js 使用 val “方法”返回输入字段的值:
jQuery#typeahead('val')
(https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#api)
很遗憾DefinitelyTypedd.ts for typeahead.sj 不包含这个“方法”的存在。
但是当我尝试添加新签名时
typeahead(methodName : 'val'): string;
我收到此错误
TS2154:专用重载签名不可分配给任何非专用签名。
现在,如果我做对了,那是因为已经存在具有不同签名的其他方法,例如这个
typeahead(methodName: 'destroy'): JQuery;
如果我创建一个返回 JQuery 对象的签名,一切正常
typeahead(methodName : 'val'): JQuery;
除了“方法”现在返回 JQuery 而不是 String 并且当我尝试像这样将它转换为 String 时
<string>$('#typeahead').typeahead('val')
我收到这个错误
TS2012:无法将“JQuery”转换为“字符串”:缺少“字符串”类型 来自类型“JQuery”的属性“ajaxComplete”。
如何正确实现val“方法”?
PS:我一直使用撇号来表示“方法”这个词,因为我觉得 2014 年的 JQuery 插件使用字符串作为方法名称是荒谬的。
【问题讨论】:
标签: jquery typescript typeahead.js