对于类似的问题有很多线索,但据我所知,这个问题是独一无二的。
我在我的应用中使用jQuery Address插件,并希望在TypeScript文件中使用它。遗憾的是,该库没有DefinitelyTyped脚本可用。当我尝试使用jQuery.address时,我得到:
The property 'address' does not exist on value of type 'jQueryStatic'
根据this thread,我试图在address
内定义jquery.d.ts
:
interface JQueryStatic {
address(options): any;
...
}
我认为这似乎适用于$ .address();但不适用于任何地址的方法。我也尝试按this thread创建我自己的.d.ts文件,但仍然没有运气。我尝试在.d.ts文件中使用declare
。没有运气。
我需要使用的唯一方法是parameter
方法......
$.address.parameter('param', 1);
在这种情况下,我得到:
The property 'parameter' does not exist on value of type 'address'
关于我如何解决这个问题的任何想法?
编辑:我在Visual Studio C#.net环境中工作,如果有帮助的话。
答案 0 :(得分:11)
您不需要编辑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;
}
答案 1 :(得分:3)
以下内容jquery.d.ts
:
interface JQueryStatic {
address(options): JQueryAddress;
}
interface JQueryAddress {
parameter(name, value): any;
}
希望有所帮助!