मैं कोशिश कर रहा हूँ
$(function(){
alert('Hello');
});
यह दृश्य स्टूडियो में इस त्रुटि को दिखा रहा है (TS) Cannot find name '$'.:। मैं टाइपस्क्रिप्ट के साथ jQuery का उपयोग कैसे कर सकता हूं?
मैं कोशिश कर रहा हूँ
$(function(){
alert('Hello');
});
यह दृश्य स्टूडियो में इस त्रुटि को दिखा रहा है (TS) Cannot find name '$'.:। मैं टाइपस्क्रिप्ट के साथ jQuery का उपयोग कैसे कर सकता हूं?
जवाबों:
सबसे अधिक संभावना है कि आपको अपने प्रोजेक्ट के लिए jQuery - in में टाइपस्क्रिप्ट डिक्लेरेशन फ़ाइल को डाउनलोड करने और शामिल करने की आवश्यकता है jquery.d.ts।
विकल्प 1: @ पैकेज पैकेज (टीएस 2.0+ के लिए अनुशंसित) स्थापित करें
अपने पैकेज के रूप में एक ही फ़ोल्डर में । फाइल फ़ाइल, निम्न कमांड चलाएँ:
npm install --save-dev @types/jquery
फिर संकलक स्वचालित रूप से jquery के लिए परिभाषाओं को हल करेगा।
विकल्प 2: मैन्युअल रूप से डाउनलोड करें (अनुशंसित नहीं)
विकल्प 3: टाइपिंग का उपयोग करना (प्री टीएस 2.0)
यदि आप टाइपिंग का उपयोग कर रहे हैं तो आप इसे इस प्रकार शामिल कर सकते हैं:
// 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
परिभाषा फ़ाइल सेट करने के बाद, $सामान्य टाइप के रूप में इसका उपयोग करने के लिए वांछित टाइपस्क्रिप्ट फ़ाइल में उपनाम ( ) आयात करें ।
import $ from "jquery";
// or
import $ = require("jquery");
आप के साथ संकलित करने के लिए आवश्यकता हो सकती है --allowSyntheticDefaultImportsजोड़ें "allowSyntheticDefaultImports": trueमें tsconfig.json ।
पैकेज भी स्थापित करें?
यदि आपके पास jquery स्थापित नहीं है, तो आप संभवतः इसे npm के माध्यम से एक निर्भरता के रूप में स्थापित करना चाहते हैं (लेकिन यह हमेशा ऐसा नहीं होता है):
npm install --save jquery
import * as $ from 'jquery'
Error TS1192 Module '"jquery"' has no default export.
के लिए दृश्य स्टूडियो कोड
मेरे लिए क्या काम करता है यह सुनिश्चित करने के लिए कि मैं सूचकांक में एक <script> टैग के माध्यम से मानक JQuery लाइब्रेरी लोडिंग कर रहा हूं ।
Daud
npm install --save @types/jquery
अब JQuery $ फ़ंक्शन सभी .ts फ़ाइलों में उपलब्ध हैं, किसी अन्य आयात की आवश्यकता नहीं है।
javascript declare var jquery: any; declare var $: any;
मेरा मानना है कि आपको JQuery के लिए टाइपस्क्रिप्ट टाइपिंग की आवश्यकता हो सकती है। चूंकि आपने कहा था कि आप विज़ुअल स्टूडियो का उपयोग कर रहे हैं, इसलिए आप उन्हें प्राप्त करने के लिए Nuget का उपयोग कर सकते हैं।
https://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/
Nuget Package Manager कंसोल में कमांड है
Install-Package jquery.TypeScript.DefinitelyTyped
अपडेट: जैसा कि टिप्पणी में बताया गया है कि यह पैकेज 2016 से अपडेट नहीं किया गया है। लेकिन आप अभी भी https://github.com/DefinitelyTyped/DefinitelyTyped पर अपने Github पेज पर जा सकते हैं और प्रकार डाउनलोड कर सकते हैं। अपनी लाइब्रेरी के लिए फ़ोल्डर नेविगेट करें और फिर index.d.tsवहां फ़ाइल डाउनलोड करें । इसे अपने प्रोजेक्ट डायरेक्टरी में कहीं भी रखें और वीएस को इसे तुरंत इस्तेमाल करना चाहिए।
कोणीय सीएलआई V7 के लिए
npm install jquery --save
npm install @types/jquery --save
सुनिश्चित करें कि jquery में angular.json -> स्क्रिप्ट की प्रविष्टि है
...
"scripts": [
"node_modules/jquery/dist/jquery.min.js"
]
...
Tsconfig.app.json पर जाएं और "प्रकार" में एक प्रविष्टि जोड़ें
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": ["jquery","bootstrap","signalr"]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
अद्यतन 2019:
डेविड द्वारा उत्तर , अधिक सटीक है।
टाइपस्क्रिप्ट 3 पार्टी विक्रेता पुस्तकालयों का समर्थन करता है, जो निश्चित रूप से प्रमाणित रेपो का उपयोग करते हुए पुस्तकालय विकास के लिए टाइपस्क्रिप्ट का उपयोग नहीं करते हैं ।
यदि आप यह घोषणा करने की आवश्यकता है jquery/ $अपने घटक में, तो tsLint प्रकार Checkings के इन प्रकार के लिए पर है।
उदाहरण के लिए।
declare var jquery: any;
declare var $: any;
declareकीवर्ड का उपयोग किया जाता है। लेकिन, फिर भी हम vscode को टाइपिंग के बारे में बता सकते हैं यदि वे मौजूद हैं node_modules, इसीलिए टाइपिंग को intellisense में मदद मिलती है, लेकिन वेनिला वेबपैक प्रोजेक्ट के लिए, बिना declareकीवर्ड प्रोजेक्ट ट्रांसप्लिकेशन विफल रहता है। मैंने लोगों को भ्रमित न करने के लिए अपने बयान को उत्तर से हटा दिया है।
import JQuery from 'jquery'; declare var $: JQuery;। यकीन नहीं है, अगर यह काम करेगा।
यदि आप एक वेब एप्लिकेशन (जैसे रिएक्ट) में jquery का उपयोग करना चाहते हैं और jquery पहले से लोड है <script src="jquery-3.3.1.js"...
वेबपृष्ठ पर आप कर सकते हैं:
npm install --save-dev @types/query
and the use it with:
let $: JQueryStatic = (window as any)["jQuery"];
इसलिए, आपको दूसरी बार (साथ npm install --save jquery) jquery लोड करने की आवश्यकता नहीं है, लेकिन टाइपस्क्रिप्ट के सभी फायदे हैं
यहाँ मेरा टाइपस्क्रिप्ट और jQuery कॉन्फिगर कदम है।
यह इंटरनेट में सबसे अधिक लेखों से बेहतर काम करने के लिए jQuery के प्रकारों का समर्थन करता है । ( मेरा मानना है। )
प्रथम:
npm install jquery --save
npm install @types/jquery --save-dev
दूसरा (बहुत बहुत महत्वपूर्ण!!):
import jquery = require("jquery");
// this helps TypeScript to understand jQuery best !!! otherwise It will confused .
const $: JQueryStatic = jquery;
तब, आप इसका आनंद ले सकते हैं:
$(document).ready(function () {
$('btn').click(function () {
alert('I am clicked !')
}
}
यह रेशमी चिकनी है !!!
declare global { interface Window { $ :JQueryStatic; } }TypeDeclaration.d.ts में जोड़ने की आवश्यकता है । और ठीक से विचार करने में, आपको यह जांचने की आवश्यकता है कि क्या $ properly विंडो properly में घुड़सवार है या नहीं। जैसे import $ = require('jquery'); window.$ = $ ;, या आपके jQuery के】 $ tag को बाहरी स्क्रिप्ट टैग द्वारा माउंट किया गया है।
import $ = require('jquery') ; window.$ = $;। (आप अपनी परियोजना के प्रारंभ बिंदु में इसे सबसे अच्छी तरह से init करेंगे। और मैं sdkसभी बाहरी lib की आवश्यकता और एक फ़ाइल या स्थान पर प्रारंभिक प्रबंधन करने के लिए एक dir बनाना पसंद करता हूं )।
मेरे लिए यह काम अब और आज एंगुलर संस्करण 9 में है
import * as $ from "jquery";