我用IFrame传输插件表示JQuery。它在iframe
接口上引入了一个新的属性JQueryAjaxSettings
。不幸的是,插件没有定义文件,这意味着它会在Intellisense和编译项目时抛出错误,因为我必须在代码中使用这个iframe
属性。
因此,我在一个单独的d.ts
文件中创建了两个新接口来扩展JQuery的定义文件:
interface JQueryIframeTransportStatic extends JQueryStatic {
ajax(settings: IJQueryIframeTransportAjaxSettings): JQueryXHR;
}
interface IJQueryIframeTransportAjaxSettings extends JQueryAjaxSettings {
iframe: boolean;
}
但是,这会在编译时引发以下错误:
TS2430: Build:接口'JQueryStaticIframeTransport‘错误地扩展了接口'JQueryStatic’。
我看到TypeScript可能被我的接口引入的新ajax
函数搞混了。但它有不同的签名。我还能怎么做呢?
发布于 2016-07-26 00:28:29
接口可以这样扩展:
interface JQueryStatic {
ajax(settings: IJQueryIframeTransportAjaxSettings): JQueryXHR;
}
interface IJQueryIframeTransportAjaxSettings extends JQueryAjaxSettings {
iframe: boolean;
}
这只是添加了新的函数声明,而不需要extends
构造。在此基础上,您可以只使用一个声明,即。
interface JQueryAjaxSettings {
iframe: boolean;
}
https://stackoverflow.com/questions/38475608
复制