【发布时间】:2015-10-09 10:18:14
【问题描述】:
我对@987654321@ 很陌生,不确定这是否可行。
我的应用程序使用jQuery。要创建一个新的JQuery,我可以使用:
var $someElement = $("#someString");
我定义了一个看起来像这样的对象:
class HtmlElementId {
private idPrefix: string = "#";
id: string;
constructor(id: string) {
this.id = id;
if (id.indexOf(this.idPrefix) !== 0) {
this.id = this.idPrefix + id;
}
}
}
我想以某种方式重载 JQuery 构造函数来制作这样的东西
$(idElement : HtmlElementId){
return $(idElement.id);
}
所以我可以在代码中使用它
var myIdElement = new HtmlIdElement("someString");
var $someElement = $(myIdElement); // <- this is what I want
问题:这可能吗?如果可以,如何实现?
【问题讨论】:
-
你只是想扩展类型定义(假设你正在使用像DefiniteTyped/tsd这样的东西)还是想知道如何编写代码来覆盖jQuery?
-
@billc.cn 我确实使用了definitelyTyped,不想更改*.d.ts 文件。是否可以在单个文件接口定义中进行扩展?
标签: jquery constructor typescript overloading