я пытаюсь
$(function(){
alert('Hello');
});
Его показ этой ошибки в Visual Studio: (TS) Cannot find name '$'.
, Как я могу использовать jQuery с TypeScript?
Скорее всего, вам нужно скачать и включить файл определения TypeScript для jQuery - jquery.d.ts
- в ваш проект.
Вариант 1. Установите пакет @types (рекомендуется для TS 2. 0+)
В той же папке, что и файл package.json, выполните следующую команду:
npm install --save-dev @types/jquery
Затем компилятор автоматически разрешит определения для jquery.
Вариант 2: скачать вручную
Загрузите это здесь.
Вариант 3: Использование печатания
Если вы используете набор текста, вы можете включить его следующим образом:
// 1. Install typings
npm install typings -g
// 2. Download jquery.d.ts (run this command in the root dir of your project)
typings install dt~jquery --global --save
После настройки файла определения импортируйте псевдоним ($
) в нужный файл TypeScript, чтобы использовать его, как обычно.
import $ from "jquery";
// or
import $ = require("jquery");
Вы имеете в виду необходимость компилировать с --allowSyntheticDefaultImports
добавьте "allowSyntheticDefaultImports": true
в tsconfig.json.
npm install --save-dev @types/jquery
? Где найти больше информации об этом, пожалуйста?
FOR Код Visual Studio
Что для меня работает, так это убедиться, что я выполняю стандартную загрузку библиотеки JQuery через script > в index.html.
Run
npm install --save @types/jquery
Теперь функции JQuery $доступны во всех файлах .ts, без необходимости каких-либо других импортов.
javascript declare var jquery: any; declare var $: any;
Я считаю, что для JQuery вам могут понадобиться машинописные машинописи. Поскольку вы сказали, что используете Visual Studio, вы можете использовать Nuget для их получения.
https://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/
Команда в консоли Nuget Package Manager
Install-Package jquery.TypeScript.DefinitelyTyped
Обновление: как отмечено в комментарии, этот пакет не обновлялся с 2016 года. Но вы все равно можете посетить их страницу Github по адресу https://github.com/DefinitelyTyped/DefinitelyTyped и загрузить типы. Перейдите в папку для своей библиотеки, а затем загрузите index.d.ts
файл index.d.ts
. Поместите его в любом месте в каталоге проекта, и VS должен немедленно его использовать.
В моем случае я должен был сделать это
npm install @types/jquery --save-dev // install jquery type as dev dependency so TS can compile properly
npm install jquery --save // save jquery as a dependency
Затем в файле скрипта A.ts
import * as $ from "jquery";
... jquery code ...
Вам нужно объявить jquery
/$
в вашем компоненте, если tsLint включен для этих типов проверок типов.
Напр.
declare var jquery: any;
declare var $: any;
Это отлично работает с другими сторонними библиотеками, если они установлены.
Для углового CLI V7
npm install jquery --save
npm install @types/jquery --save
Убедитесь, что в jquery есть запись в angular.json → scripts
...
"scripts": [
"node_modules/jquery/dist/jquery.min.js"
]
...
Перейдите в tsconfig.app.json и добавьте запись в "types"
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": ["jquery","bootstrap","signalr"]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
Я пишу сообщение в блоге здесь, чтобы решить эту проблему
Это работает для меня:
export var jQuery: any = window["jQuery"];
import * as $ from "jquery";