将JQueryUI与TypeScript和DefinitelyTyped定义文件一起使用时出错

萨莎·丰塞卡(Sasha Fonseca)

因此,我尝试将JQueryUI与TypeScript一起使用,到目前为止,我已经将JQueryUI与npm install jquery-ui-dist和一起安装了JQuery npm install jquery我还使用npm install --save-dev @types/jquery从DefinitelyTyped添加了定义文件npm install --save-dev @types/jquery-ui

我有以下文件(省略了一些部分):

///<reference path="../../node_modules/@types/jqueryui/index.d.ts"/>
import * as $ from "jquery";
import "jquery-ui";

export default class Resizer {

    public static extraMargin = 5;

    public static setVerticalResizer(...) {
        ...
        let topElem: HTMLElement = <HTMLElement> cardElem.querySelector(".my-class");

        $(topElem).resizable({
            ...
        });
    }
}

在构建和运行时,出现以下错误:

Uncaught TypeError: r(...).resizable is not a function

所以我想我的导入JQueryUI的方式有问题吗?还是JQueryUI未正确安装?尽管导入和定义在VS Code中似乎正常工作。

这也是我在HTML文件中使用它们的方式:

<script src="node_modules/jquery-ui-dist/jquery-ui.mis.js"></script>
<link rel="stylesheet" href="node_modules/jquery-ui-dist/jquery-ui.min.css">

关于如何解决问题以及将JQueryUI与TypeScript结合使用的任何想法?

阿鲁安·哈达德(Aluan Haddad)

这不是TypeScript错误,这是运行时错误。

jQueryUI实际上被加载了两次!

通过脚本标签一次

<script src="node_modules/jquery-ui-dist/jquery-ui.mis.js"></script>

然后再次在您的模块中

import $ from "jquery";
import "jquery-ui";

export default class ....

上面模块中的代码正确的,但是脚本标记导致失败。

另外,我看到你有

///<reference path="../../node_modules/@types/jqueryui/index.d.ts"/>

删除这个!尽管它不会引起运行时问题,但该构造仅在使用全局变量而不是模块编写应用程序代码时使用。

如果没有自动选择类型,请指定

"compilerOptions": {
  "moduleResolution": "node"
}

或使用(与node_modules旁边的tsconfig.json一起显示)

"compilerOptions": {
  "baseUrl": ".", // required with paths but can be something besides "."
  "paths": {
    "jquery-ui": [
      "node_modules/@types/jqueryui/index"
    ]
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将createStore与Typescript和thunk一起使用时出错

将加载的Keras分类器与自定义指标功能一起使用时出错

将argv与函数一起使用时出错

将statsmodels与pyinstaller一起使用时出错

将fnAddData与数据顺序一起使用时出错

将 ScrollChor 与 NavItem 一起使用时出错

将FutureBuilder与本地JSON一起使用时出错

将AutoMapper与异步方法一起使用时出错

将ngMaterial与ngRoute一起使用时出错

将Express会话与Express一起使用时出错

将SharedElementTransition与recyclerView一起使用时出错

将SparkJob与NamedRddSupport一起使用时出错

将cout与指针值一起使用时出错

将 File 与 ImagePicker Flutter 一起使用时出错

将 wc -c 与文件名一起使用时出错

将getItem与DynamoDB和节点aws-sdk库一起使用时出错

NHibernate和C#:将嵌套属性与Criteria一起使用时出错

将 calc() 与 react-native 和 styled-components 一起使用时出错

将TypeScript与tsconfig.json文件一起使用时,是否可以包含json文件?

TypeScript的介入方式:我可以仅将Typescript与定义文件(和普通js文件)一起使用吗?

尝试将 Jest 与 Typescript 一起使用时 tsconfig.json 文件中的问题

将useState与[]和不与之一起使用,以及与{}一起使用时的区别

hex()方法与自定义对象一起使用时出错

将头文件与struct / array一起使用时出现指针问题,导致多个定义错误(C)

Datastax企业文件系统(DSEFS):与Spark Streaming一起使用时出错

删除目录中最旧的文件时出错。(与 xargs 一起使用时 gio 垃圾错误)

pthreads和apc一起使用时出错:分段错误

将Conv2DLayer与lasagne NeuralNet一起使用时出错

将jsonwebtoken与angular-cli应用程序一起使用时出错