声明用于TypeScript的JS库

类似问题有很多线索,但据我所知,这个问题是独一无二的。

我在我的应用程序中使用jQuery Address插件,并希望在TypeScript文件中使用它。 遗憾的是,该库没有可用的DefinitelyTyped脚本。 当我尝试使用jQuery.address时,我得到:

The property 'address' does not exist on value of type 'jQueryStatic' 

根据这个post ,我试图在jquery.d.ts定义address

 interface JQueryStatic { address(options): any; ... } 

我认为这似乎适用于$ .address(); 但不是任何地址的方法。 我也尝试过这个post创建自己的.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环境中工作,如果有帮助的话。

您不需要编辑jquery.d.ts本身; 将这些定义放在自己的文件中,以便正确维护。 最小的东西是这样的:

 // For methods on eg $('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; } 

以下内容在jquery.d.ts

 interface JQueryStatic { address(options): JQueryAddress; } interface JQueryAddress { parameter(name, value): any; } 

希望有所帮助!

Interesting Posts