我想将属性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
接口声明中)。