我想向接口添加一个属性someString
,JQueryStatic
以便我可以使用$.someString
.
在index.ts
,我有这个代码:
interface JQueryStatic {
someString: string;
}
$.someString = "string";
$
是 type JQueryStatic
,但是我收到以下错误:
类型“JQueryStatic”上不存在属性“someString”。
我想向接口添加一个属性someString
,JQueryStatic
以便我可以使用$.someString
.
在index.ts
,我有这个代码:
interface JQueryStatic {
someString: string;
}
$.someString = "string";
$
是 type JQueryStatic
,但是我收到以下错误:
类型“JQueryStatic”上不存在属性“someString”。
您可以使用扩展 jQuery 类型声明的环境类型声明,如下所示:
declare interface JQueryStatic {
someString: string;
}
将它.d.ts
放在代码中某处的文件中,并确保它包含(或不排除)在您的tsconfig.json
.
为什么这行得通?
正是这declare
一点使这个“环境”成为“环境”——就像“在某个地方存在一个JQueryStatic
有一个someString
成员的地方”一样。TypeScript 很聪明,并且发现其他地方还有另一个JQueryStatic
环境声明(在您的情况下,jQuery 类型化并将它们“合并”在一个JQueryStatic
接口声明中。
的现有类型信息$
位于声明文件(您可能已下载)中。如果您想将新接口声明合并到现有接口中,请将您的声明放入jquery-extensions.d.ts
文件中:
interface JQueryStatic {
someString: string;
}
如有必要,请在代码顶部添加此新文件的引用路径:
/// <reference path="../path/to/jquery-extensions.d.ts" />