8

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

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

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

根据这个线程,我试图定义address内部jquery.d.ts

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

我认为这似乎适用于 $.address(); 但不适用于任何地址方法。我也尝试为每个线程创建自己的 .d.ts 文件,但仍然没有运气。我尝试declare在 .d.ts 文件中使用。没运气。

我需要使用的唯一方法是parameter方法......

$.address.parameter('param', 1);

在这种情况下,我得到:

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

关于如何解决这个问题的任何想法?

编辑:我在 Visual Studio C# .net 环境中工作,如果有帮助的话。

4

2 回答 2

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;
}
于 2013-08-07T21:36:56.437 回答
3

以下内容进入jquery.d.ts

interface JQueryStatic {
    address(options): JQueryAddress;
}

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

希望有帮助!

于 2013-08-07T21:05:34.510 回答