【问题标题】:Create jQuery Plugin with TypeScript使用 TypeScript 创建 jQuery 插件
【发布时间】:2016-09-25 17:45:19
【问题描述】:

我已将我创建的 jQuery 插件添加到 TypeScript 文件中。例如,假设我有这个:

Extensions.ts

(function ($)
{
    $.fn.isNot = function (selector)
    {
        return !this.is(selector);
    };
}(jQuery));

function HelloWorld()
{
}

然后,在另一个文件中:

如您所见,Utilities.ts 可以看到 HelloWorld 函数,但看不到 jQuery 扩展...

但是,当我尝试通过其他文件引用此文件时,它不起作用。有没有办法解决这个问题,以便我可以在 TypeScript 中创建这样的扩展文件并能够使用其他 typescript 文件引用它们?还是我必须为每个扩展文件创建定义文件?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    您可以为每个扩展创建一个或一个定义文件 - 这取决于您。

    应该是这样的:

    interface JQuery {
      isNot(selector: string): boolean
    }
    

    这应该在 .d.ts 文件中,除了 .ts 代码文件

    【讨论】:

    • 好的 - 那么对于扩展方法,我总是需要一个定义文件,但如果它是一个正常的功能,我没有?
    • 如果您使用该功能导入文件,则不会。如果你想使用外部库,或者自己创建一个 - 定义文件是必须的
    • 用函数导入文件是什么意思?它不是外部库 - 它是我自己在 .ts 文件中编写的扩展 -
    • 很好,然后忽略我的其余答案..在您的情况下没有必要
    • 但它不起作用 - 即使我的文件引用了我的扩展文件,他们也无法实际使用它......