【问题标题】:Jquery doesnt work when transpilled to es5转译为 es5 时 Jquery 不起作用
【发布时间】:2018-05-08 07:48:07
【问题描述】:

打字稿代码:

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 用作环境或模块。目前我猜你刚刚从网站上下载了 jquery 并将其保存为 jquery.js?
  • 您需要使用npm在您的应用程序上安装jquery,然后您上面的代码应该可以工作

标签: javascript jquery typescript browserify


【解决方案1】:

尝试导入 jQuery 的默认导出,像这样:

import $ from "jquery";

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

【讨论】:

  • 这是正确的。具体来说,命名空间不能是[[Call]]ed[[Construct]]edinteropRequireWildcard 的实现可能会确保遵守规范。
  • 我之前尝试过,但出现错误 TS1192 Module ''jquery'' has no default export。 "allowSyntheticDefaultImports" : true 解决了这个问题
猜你喜欢
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 2017-06-15
  • 1970-01-01
  • 2014-10-12
相关资源
最近更新 更多