jquery - 如何让 TypeScript 与 jQuery 插件配合使用?

标签 jquery jquery-plugins typescript

我有一个以标准方式工作的 jQuery 插件:

$.fn.doSomething = function () {
//do something to each item in the list
}

在常规 javascript 中,我可以调用 doSomething ,就好像它确实是 jQuery 的一部分一样:

$(selector).doSomething();

使用 jquery.d.ts 引用的 Typescript 与 jQuery 配合得很好,但对我的插件一无所知,所以我得到:

The property 'doSomething' does not exist on value of type 'JQuery'.

那么我如何告诉 TypeScript 我添加的附加功能呢?

最佳答案

您需要插件的类型定义文件。

一些常见的库可以在这里(并通过nuget)https://github.com/borisyankov/DefinitelyTyped

您可能需要在 google 上搜索一下,看看您的作品是否已由某人制作。如果没有,您只需要自己制作。

例如,如果我希望能够执行 $('#idOfElement').autosize();

我将创建一个包含以下代码的 .d.ts 文件:

interface JQuery {
    autosize(): JQuery;
}

或者自动大小可能需要一些选项,在这种情况下你可以这样定义它:

interface JQuery {
    autosize(): JQuery;
    autosize(options: autosizeOptions): JQuery;
}

interface autosizeOptions {
    className?: string;
    append?: string;
    callback?: any;
}

关于jquery - 如何让 TypeScript 与 jQuery 插件配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295970/

相关文章:

node.js - 尽管有文档,类方法的函数重载是一个编译器错误

php - 不切换页面通过php发送html表单数据到数据库

javascript - 将 Json 响应保存到数组的方法

jquery - 如何将多个值添加到 jquery 代码

Jquery 屏蔽输入

typescript - Webpack 4 使用 unsafe-eval 构建砖 block CSP

javascript - 我可以将 typescript 实用程序类型与 jsdoc 一起使用吗?

jquery - 需要简单的 jquery 淡入/淡出转换帮助

jquery - 从函数内部的函数返回值

javascript - 为 jquery-image-scale 插件定义选择器