Javascript 获取jQuery插件以;见;TypeScript中的jQuery

Javascript 获取jQuery插件以;见;TypeScript中的jQuery,javascript,jquery,typescript,Javascript,Jquery,Typescript,在我的main.ts文件中,我导入了jQuery,并且需要这样的插件: /// <reference path="../../../typings/tsd.d.ts" /> import * as $ from 'jquery'; require('./vendors/tablesaw'); // 从“jquery”导入*为$; 要求(“/供应商/表锯”); 这与预期的一样,所有东西都正确绑定(使用webpack),但是插件抛出了一个$is not defined错误,所以问题

在我的
main.ts
文件中,我导入了jQuery,并且需要这样的插件:

/// <reference path="../../../typings/tsd.d.ts" />

import * as $ from 'jquery';
require('./vendors/tablesaw');
//
从“jquery”导入*为$;
要求(“/供应商/表锯”);

这与预期的一样,所有东西都正确绑定(使用webpack),但是插件抛出了一个
$is not defined
错误,所以问题是如何让它在导入jQuery时“看到”jQuery

好吧,我找到了一个解决办法。您可以在webpack项目中全局公开jQuery,因此将以下内容放入webpack
config
对象中:

resolve: {
     alias: {
            jquery: path.resolve(__dirname, 'jquery.min.js')
     }
}
并将其放入您的网页输入文件:

require('expose?$!expose?jQuery!jquery');
最后安装expose loader:

npm install expose-loader --save
将实现这一技巧,使jQuery对所有插件等可见。

您可以jQuery到
窗口
对象,使其全局可用,类似于它自己加载的方式:

import * as $ from "jquery";
Object.assign(window, { $ });

当我试图将jQuery从我的TypeScript条目文件公开到全局范围时,如下所示:

import * as $ from "jquery";
window.$ = $;
我得到的错误是,类型“Window”上不存在属性“$”,但上面的方法似乎可以编译并正常工作