添加 属性 到 JQueryStatic 接口

Add property to JQueryStatic interface

我想添加一个 属性 someStringJQueryStatic 接口,这样我就可以用 $.someString.

访问它

index.ts中,我有这个代码:

interface JQueryStatic {
    someString: string;
}

$.someString = "string";

$JQueryStatic 类型,但是我收到以下错误:

Property 'someString' does not exist on type 'JQueryStatic'.

$ 的现有类型信息在声明文件中(您可能已下载)。如果您想将新接口声明合并到现有接口中,请将您的声明放入 jquery-extensions.d.ts 文件中:

interface JQueryStatic {
    someString: string;
}

如有必要,请在代码顶部添加指向此新文件的引用路径:

/// <reference path="../path/to/jquery-extensions.d.ts" />

您可以使用扩展 jQuery 类型声明的环境类型声明,如下所示:

declare interface JQueryStatic {
     someString: string;
}

将它放在代码中某处的 .d.ts 文件中,并确保它包含(或不排除)在您的 tsconfig.json.

为什么这样做?

declare 位是造成此 "ambient" 的原因 - 与 "there exists somewhere a JQueryStatic which has a someString member" 中一样。 TypeScript 很聪明,它发现其他地方还有另一个 JQueryStatic 环境声明(在你的例子中,jQuery 打字和 "merges" 它们一起在一个 JQueryStatic 接口声明中。