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

时间:2016-07-09 15:14:40

标签: jquery typescript typescript-typings

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

我已经导入了jquery&添加了它的定义参考。 如果我在import $ = require("jquery")文件中使用test.ts,则在进行Cannot find module jquery编译时会出现另一个错误“tsc”。但是,JQuery文件夹已存在于node_modules文件夹中。

有谁知道在打字稿中使用jquery的正确方法是什么?

以下是我的步骤:

  1. 使用npm install jquery --save
  2. 安装jquery
  3. 安装打字和&使用typings install --global --save dt~jquery
  4. 进行jquery定义
  5. 在test.ts /// <reference path="../../../typings/globals/jquery/index.d.ts" />
  6. 的顶部添加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",
        ]
    }
    

    test.ts

    /// <reference path="../../../typings/globals/jquery/index.d.ts" />
    
    let test:any=$("div");
    

5 个答案:

答案 0 :(得分:17)

如果你发现这些错误90%的时间是因为版本化问题@ types / jquery

尝试运行:

 npm install jquery --save

然后在app.module.ts

import * as $ from 'jquery';

然后运行:

  npm install @types/jquery@2.0.47

你应该准备好了。

答案 1 :(得分:13)

我不知道它是否有帮助,但我为我的datepicker解决了同样的问题。

首先我用这个命令安装了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部分可能会对你有用。如果有效,请告诉我。

答案 2 :(得分:1)

{'canonicalForm': 'cat',
 'list': ['kitty',
  'c*']}

不是为我工作。足够有趣

import * as $ from "jquery";

实际上解决了我的问题。

答案 3 :(得分:0)

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

导入'datatables.net';

答案 4 :(得分:0)

您可能需要修复一些漏洞。

运行npm audit fix进行修复,或运行npm audit进行详细说明。