Typescript和JQuery编译错误:找不到名称'$';

Typescript和JQuery编译错误:找不到名称'$';,jquery,typescript,typescript-typings,Jquery,Typescript,Typescript Typings,我正在用jquery测试typescript,但是当我编译test.ts文件时,它总是给我一个错误,指示:找不到名称“$” 我已经导入了jquery并添加了它的定义引用。 如果在我的test.ts文件中使用import$=require(“jquery”),则在编译tsc时会出现另一个错误“找不到模块jquery”。但是,JQuery文件夹已经存在于node_modules文件夹中 有人知道在typescript中使用jquery的正确方法吗 以下是我的步骤: 使用npm安装jquery--sa

我正在用jquery测试typescript,但是当我编译test.ts文件时,它总是给我一个错误,指示:找不到名称“$”

我已经导入了jquery并添加了它的定义引用。 如果在我的
test.ts
文件中使用
import$=require(“jquery”)
,则在编译
tsc
时会出现另一个错误“
找不到模块jquery
”。但是,JQuery文件夹已经存在于node_modules文件夹中

有人知道在typescript中使用jquery的正确方法吗

以下是我的步骤:

  • 使用
    npm安装jquery--save安装jquery
  • 使用
    typings安装--global--save dt~jquery安装typings和jquery定义
  • 在test.ts顶部添加jquery引用
  • tsconfig.json

    {
        "compilerOptions": {
            "jsx": "react",
            "outDir": "./dist",
            "sourceMap": true,
            "noImplicitAny": true,
            "module": "commonjs",
            "target": "es5",
            "experimentalDecorators": true
        },
        "exclude": [
            "node_modules"
        ],
        "files": [
            "./typings/index.d.ts",
            "./src/wo/tests/test.ts",
        ]
    }
    
    测试.ts

    /// <reference path="../../../typings/globals/jquery/index.d.ts" />
    
    let test:any=$("div");
    
    //
    let test:any=$(“div”);
    
    我不知道这是否有帮助,但我为我的日期选择器解决了同样的问题

    首先,我使用以下命令安装jQuery:
    npm install--save dev@types/jQuery

    然后在angular-cli.json文件中添加依赖项:

    "styles": [
                "../node_modules/bootstrap/dist/css/bootstrap.css",
                "../node_modules/font-awesome/css/font-awesome.css",
                "../node_modules/ng2-datetime/src/vendor/bootstrap-datepicker/bootstrap-datepicker3.min.css",
                "styles.css"
            ]
    
    "scripts": [
                "../node_modules/jquery/dist/jquery.js",
                "../node_modules/ng2-datetime/src/vendor/bootstrap-datepicker/bootstrap-datepicker.min.js"
            ]
    

    我认为添加jQuery部分可能会对您有所帮助。请让我知道它是否有效。

    如果您发现这些错误90%是因为@types/jquery的版本控制问题

    尝试运行:

    然后在
    app.module.ts
    中:

    然后运行:


    您应该已经准备就绪。

    安装并导入以下软件包。它将解决错误(“找不到名称“$”)。角度版本是7


    导入“datatables.net”

    您可能有一些需要修复的漏洞

    运行
    npm audit fix
    修复它们,或
    npm audit
    获取详细信息

    import * as $ from "jquery";
    
    不适合我。很有趣

    import { ajax, css } from "jquery";
    

    实际上解决了我的问题。

    你是如何编译这个项目的?另外,您的
    tsconfig.json
    定义似乎是错误的。您不能同时使用
    排除
    文件
    文件
    在这种情况下将获胜,因此可能路径错误)。另外,您不需要
    ///您可以参考下面的链接了解此解决方案,它的工作是使用$和查询typescript中的所有函数。链接:
    npm安装--save dev@types/jquery
    解决了这个问题。谢谢。只有将它与“jquery”中的
    import*合并为$解决了我的问题。在angular 6中,angular-cli.json变为angular.json,但我不需要修改脚本部分。只需
    npm安装--将dev@types/jquery
    import*保存为$from'jquery'
    足以构建这个函数,虽然我必须将jquery放在一个字符串中,比如
    import*中的$from“jquery”。IntelliJ以灰色突出显示它是一个未使用的导入,但应用程序将仅使用这一行进行编译。最后一步是我需要的
    jquery@3.3.1
    Hello@Ignatius Andrew,它成功了,但我收到了一些警告,比如
    app/app.module.ts[14,13]:未使用的导入:'$'
    Praveen Kumar。。将自定义键入作为类型“any”添加到“$”中,它应该消失。
      npm install @types/jquery@2.0.47
    
    import * as $ from "jquery";
    
    import { ajax, css } from "jquery";