Typescript и ошибка компиляции JQuery: не удается найти имя '$'

Я тестирую typescript с помощью jquery, но когда я компилирую файл test.ts, он всегда дает мне сообщение об ошибке: Не удается найти имя "$".

Я уже импортировал jquery и добавил ссылку на определение. Если я использую import $ = require("jquery") в моем test.ts файле, при выполнении tsc компиляции произойдет другая ошибка "Cannot find module jquery". Однако папка JQuery уже существует в папке node_modules.

Кто-нибудь знает, что является правильным способом использования jquery в typescript?

Ниже приведены мои шаги:

  • Установите jquery с помощью npm install jquery --save
  • Установите идентификаторы и определение jquery с помощью typings install --global --save dt~jquery
  • Добавьте ссылку jquery наверху test.ts /// <reference path="../../../typings/globals/jquery/index.d.ts" />

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");

Ответ 1

Если вы обнаружите эти ошибки в 90% случаев из-за проблемы с версией Проблема @types/jquery

Попробуйте запустить:

 npm install jquery --save

Тогда в app.module.ts:

import * as $ from 'jquery';

Затем выполните:

  npm install @types/[email protected]

И вы должны быть готовы к работе.

Ответ 2

Я не знаю, помогает ли это, но я решил ту же проблему для своего дампикера.

Сначала я установил 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 может сработать для вас. Пожалуйста, дайте мне знать, если это сработает.

Ответ 3

Установите и импортируйте следующий пакет. это будет решено из-за ошибки ("Не удается найти имя '$'"). Угловая версия 7

импорт 'datatables.net';

Ответ 4

Возможно, у вас есть уязвимости, которые нужно исправить.

Запустите npm audit fix чтобы исправить их, или npm audit для получения подробной информации.