Javascript Jquery在传输到es5时不起作用

Javascript Jquery在传输到es5时不起作用,javascript,jquery,typescript,browserify,Javascript,Jquery,Typescript,Browserify,打字脚本代码: import * as $ from "jquery"; import {Canvas} from "./canvas"; $(() => { let canvas = new Canvas(600, 600); canvas.init(); }); 我使用browserify,它将typescript导入到 var _jquery = require("jquery"); var $ = _interopRequireWildcard(_jquery)

打字脚本代码:

import * as $ from "jquery";
import {Canvas} from "./canvas";

$(() => {
    let canvas = new Canvas(600, 600);
    canvas.init();
});
我使用browserify,它将typescript导入到

var _jquery = require("jquery");
var $ = _interopRequireWildcard(_jquery);

$(function () {
    var canvas = new _canvas.Canvas(600, 600);
    canvas.init();
});
将抛出此错误:

Uncaught TypeError: $ is not a function

当我在控制台中将$替换为_jQuery时,一切正常,我如何删除_interopRequireWildcard调用???

尝试导入jQuery的默认导出,如下所示:

import $ from "jquery";

这应该可以解决您的问题。

您需要将jquery用作环境或模块。目前我猜你刚刚从网站下载了jquery并将其保存为jquery.js?你需要使用npm在你的应用程序上安装jquery,然后你上面的代码应该可以正常工作。这是正确的。具体而言,命名空间不能[[Call]]ed或[[Construct]]ed,InteroprequireWaldCard的实现可能会确保遵守规范。我以前尝试过,但出现错误TS1192模块jquery没有默认导出。allowSyntheticDefaultImports:true修复了此问题