jquery - 向 JQueryStatic 接口(interface)添加属性

标签 jquery typescript tsd typescript-typings

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

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

interface JQueryStatic {
    someString: string;
}

$.someString = "string";

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

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

最佳答案

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

declare interface JQueryStatic {
     someString: string;
}

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

为什么会这样?

declare 位使得这个“环境” - 就像“某处存在一个 JQueryStatic ,它有一个 someString 成员”。 TypeScript 很聪明,它会发现其他地方还有另一个 JQueryStatic 环境声明(在您的情况下,jQuery 类型并将它们“合并”到一个 JQueryStatic 接口(interface)声明中。

enter image description here

关于jquery - 向 JQueryStatic 接口(interface)添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37751376/

相关文章:

Javascript/Jquery 高效放大编码

javascript - 类型 'string | undefined' 的参数不可分配给类型 'string' 的参数 - TypeScript 错误

javascript - 如何动态分配属性

typescript - 如何为特定版本的 node.js 安装 d.ts?

typescript - 如何删除 typescript 定义?

javascript - 文档就绪时阻止 UI

javascript - 如果我还没有使用 bind 或 click 将事件处理程序绑定(bind)到它,我可以调用 jQuery 的 click() 来跟踪 <a> 链接吗?

javascript - 轮播 - 将文本与 slider 中的图像相关联

typescript - 如何在 Typescript 中使用 WinJS.Class.define()?