我想将属性someString添加到JQueryStatic接口,以便可以使用$.someString访问它。

index.ts中,我有以下代码:

interface JQueryStatic {
    someString: string;
}

$.someString = "string";


$的类型为JQueryStatic,但是出现以下错误:


属性“ someString”在类型“ JQueryStatic”上不存在。

最佳答案

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

declare interface JQueryStatic {
     someString: string;
}


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

为什么这样做?

declare位是使该内容“环境”的原因-如“在JQueryStatic的某个位置存在具有someString成员的位置”。 TypeScript很聪明,并且发现其他地方还有另一个JQueryStatic环境声明(在您的情况下,jQuery键入并将它们“合并”在一起在单个JQueryStatic接口声明中)。

jquery - 将属性添加到JQueryStatic接口(interface)-LMLPHP

09-16 17:23