类似问题有很多讨论帖,但据我所知,这是独一无二的。
我正在使用 jQuery Address我的应用程序中的插件,并希望在 TypeScript 文件中使用它。不幸的是没有 DefinitelyTyped可用于库的脚本。当我尝试使用 jQuery.address 时,我得到:
The property 'address' does not exist on value of type 'jQueryStatic'
根据 this thread ,我试图在 jquery.d.ts
中定义 address
:
interface JQueryStatic {
address(options): any;
...
}
而且我认为这似乎适用于 $.address();但不适用于任何地址的方法。我还尝试根据 this thread 创建自己的 .d.ts 文件,但仍然没有运气。我尝试在 .d.ts 文件中使用 declare
。运气不好。
我需要使用的唯一方法是参数
方法...
$.address.parameter('param', 1);
在这种情况下我得到:
The property 'parameter' does not exist on value of type 'address'
关于如何解决这个问题有什么想法吗?
编辑:如果有帮助的话,我正在 Visual Studio C# .net 环境中工作。
最佳答案
您不需要编辑 jquery.d.ts
本身;将这些定义放在它们自己的文件中,以便可以正确维护它们。最小的东西是这样的:
// For methods on e.g. $('a')
interface JQuery {
address(callback?: () => void): JQuery;
}
// For methods on $
interface JQueryStatic {
address: JQueryAddressStatic;
}
interface JQueryAddressStatic {
(): JQuery;
parameter(name: string): string;
parameter(name: string, value: string, append?: boolean): JQuery;
}
关于javascript - 声明用于 TypeScript 的 JS 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113589/