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
для получения подробной информации.