我想将一个属性someString添加到JQueryStatic接口中,这样我就可以使用$.someString访问它。
在index.ts中,我有以下代码:
interface JQueryStatic {
someString: string;
}
$.someString = "string";$是JQueryStatic类型,但是我得到以下错误:
属性'someString‘在'JQueryStatic’类型中不存在。
发布于 2016-06-10 15:14:18
您可以使用环境类型声明来扩展jQuery类型声明,如下所示:
declare interface JQueryStatic {
someString: string;
}将其放在代码中的某个地方的.d.ts文件中,并确保它包含(或不排除)在tsconfig.json中。
为什么这样做?
declare位是造成这种“环境”的原因--就像“某个地方存在一个具有someString成员的JQueryStatic”一样。TypeScript很聪明,并且发现在其他地方还有另一个JQueryStatic环境声明(在您的例子中,jQuery类型并将它们“合并”在一个JQueryStatic接口声明中)。

发布于 2016-06-10 15:09:51
$的现有类型信息位于声明文件中(您可能下载了该文件)。如果要将新接口声明合并到现有接口中,请将声明放入jquery-extensions.d.ts文件:
interface JQueryStatic {
someString: string;
}如果有必要,在代码的顶部为这个新文件添加一个引用路径:
/// <reference path="../path/to/jquery-extensions.d.ts" />https://stackoverflow.com/questions/37751376
复制相似问题