Npm @types org संकुल में टाइपस्क्रिप्ट टाइपिंग


135

मैंने देखा है कि एक npm संगठन @types है , जिसमें टाइपिंग पैकेज हैं, लेकिन इस पर कोई प्रलेखन नहीं मिल सकता है। इनका उपयोग कैसे किया जाता है?

क्या इसका मतलब टाइपिंग टूल के साथ किया जाना है ? यदि हां, तो उन्हें कैसे स्थापित किया जाए? उदाहरण के लिए, एक @types/openlayersपैकेज है, लेकिन typings search npm:openlayersकुछ भी नहीं लौटाता है।

क्या इसका मतलब टाइपिंग टूल से अलग से इस्तेमाल किया जाना है? जैसे सीधे स्थापित npm?


11
इस सवाल के लिए धन्यवाद।
लेओन पेलेटियर

जवाबों:


109

टाइपस्क्रिप्ट 2.0 के अनुसार, टाइपिंग की अब आवश्यकता नहीं है। Npm संगठन डेवलपर्स टीम को सेटअप करने के लिए एक इकाई है। मेरा मानना ​​है कि Microsoft ने ntpm में @types संगठन की स्थापना की और संगठन में टाइपस्क्रिप्ट डेवलपर टीम को जोड़ा। डॉट्स संगठन के तहत पैकेज डॉक्स के अनुसार निश्चित रूप से टाइप-पब्लिशर टूल का उपयोग करके स्वचालित रूप से निश्चित रूप से प्रकाशित किए जाते हैं ।

इसके अलावा, typesआपके पैकेज में जोड़ने का एक और तरीका है:

अपने पैकेज में। Json

यदि आपके पैकेज में एक मुख्य .jsफ़ाइल है, तो आपको अपनी package.jsonफ़ाइल में भी मुख्य घोषणा फ़ाइल को इंगित करना होगा । typesअपनी बंडल घोषणा फ़ाइल को इंगित करने के लिए संपत्ति सेट करें । उदाहरण के लिए:

{
    "name": "awesome",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts"
}

ध्यान दें कि "typings"फ़ील्ड का पर्याय है "types", और इसका उपयोग भी किया जा सकता है।

यह भी ध्यान दें कि यदि आपकी मुख्य घोषणा फ़ाइल का नाम है index.d.tsऔर पैकेज के मूल में रहता है (बगल में index.js) आपको "types"संपत्ति को चिह्नित करने की आवश्यकता नहीं है , हालांकि ऐसा करना उचित है।

खोज प्रकारों के बारे में

अधिकांश भाग के लिए, टाइप डिक्लेरेशन पैकेज में हमेशा npm पर पैकेज नाम के समान नाम होना चाहिए, लेकिन @ प्रकार / के साथ उपसर्ग किया जाता है, लेकिन यदि आपको आवश्यकता है, तो आप पैकेज को खोजने के लिए https://aka.ms/types की जांच कर सकते हैं। अपने पसंदीदा पुस्तकालय के लिए।

से - http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

लेकिन जब मैंने किया npm search @types/openlayers, तो मुझे कोई परिणाम नहीं मिला। लेकिन वेब इंटरफ़ेस से खोज करने से मुझे परिणाम वापस मिल गए। इसलिए मुझे लगता npm searchहै कि संगठनों में खोज नहीं है।


बहुत बढ़िया जवाब! मामूली संपादन अच्छा होगा, लेकिन यह वर्तमान स्थिति को समझाने का बेहतर काम करता है।
बजे रोनाल्ड ज़रीट्स

चूंकि आप संपत्ति के package.jsonतहत अपनी एकल फ़ाइल निर्दिष्ट करते typesहैं, मैंने देखा कि आप बंडल घोषित फ़ाइल के बारे में बात कर रहे हैं । गुल जैसी स्वचालित निर्माण प्रणाली में इसे प्राप्त करने का सबसे आसान तरीका क्या होगा?
निकी

क्या मुझे "main"फ़ील्ड जोड़ना होगा यदि मुख्य का नाम index.js है?
नौ

2
इस के लिए बहुत धन्यवाद "ध्यान दें कि यह "typings"क्षेत्र पर्यायवाची है "types", और इसका इस्तेमाल भी किया जा सकता है"
सेरही पोपोव

42

टाइपस्क्रिप्ट ब्लॉग पर घोषणा इस का जवाब देती है: घोषणा की भविष्य की फाइलें

सारांश:

@typesNPM संगठन के साथ प्रकार परिभाषाएं प्राप्त करने के लिए है npm। इन प्रकार की परिभाषाओं का उपयोग करना टाइपस्क्रिप्ट 2.0 में एक सुविधा आ रही है।

यह मौजूदा प्रोजेक्ट्स / टूल्स जैसे टाइपिंग और tsd को रिप्लेस करेगा, हालाँकि ये कुछ समय तक सपोर्ट करते रहेंगे।


1
हे रॉन, इसलिए मैं इन सेटअप को प्राप्त करने की कोशिश कर रहा हूं, लेकिन ऐसा नहीं लगता है कि VSCode को एहसास हो रहा है कि मैंने उन्हें स्थापित किया है। core-jsW / जैसे कुछ का उपयोग करने के बाद npm i @types/core-js --save, मैं इसे फ़ोल्डर में देख सकता हूं, लेकिन प्रोजेक्ट अभी भी चीजों के लिए त्रुटियों को फेंकता है। क्या कुछ और है जो मुझे करना चाहिए? क्या मुझे tsconfig को @types या कुछ और के बारे में पता होना चाहिए? शॉन ने कहा, अभी तक किसी भी प्रकार का कोई दस्तावेज़ीकरण नहीं हुआ है :(
मार्क पाइज़्ज़ाक - ट्रिलोन.आईओ

@MarkPieszak आपको यकीन है कि VSCode TS2.0 का उपयोग कर रहा है। स्थानीय रूप से टाइपस्क्रिप्ट स्थापित करने और इसे VSCode में उपयोग करने का तरीका देखें: github.com/Microsoft/TypeScript/wiki/Nightly-drops
nino.porcino

हाँ, यह @ nino.porcino धन्यवाद था :) tsdkटीएस के एक 2.0beta अधिष्ठापन की ओर इशारा करने की जरूरत है
मार्क Pieszak - Trilon.io

कम से कम कुछ टीम प्रोजेक्ट्स के लिए हम अपडेट कर रहे हैं (और अन्य GH प्रोजेक्ट्स में भी जो हमने देखा है) एक को उन मॉड्यूल नामों को सूचीबद्ध करने वाली सरणी संपत्ति के tsconfig.jsonसाथ भी अपडेट करना चाहिए "types", जैसे"types": ["core-js"]
सुपरजोस

7

यह एक ऐसी सुविधा होने जा रही है जिसे टाइपस्क्रिप्ट 2.0 में रोल आउट किया गया है। यह UMD मॉड्यूल / पुस्तकालय और उनकी संबंधित परिभाषाओं के लिए प्रकार का समर्थन प्रदान करता है।

देखें ( निर्मित UMD मॉड्यूल परिभाषा के लिए समर्थन ) के मुद्दों की बेहतर समझ वर्तमान परिवेश typings साथ पाने के लिए।


धन्यवाद! यह उपयोगी है, लेकिन मैं GitHub मुद्दे पर @types npm org पर चर्चा नहीं करता। क्या @types org विशेष रूप से UMD /// <referenceपरिदृश्य के लिए है? क्या टाइपस्क्रिप्ट कंपाइलर स्वचालित रूप से प्रकारों को खोजेगा node_modules/@types(जैसा कि यह node_modulesकब मॉड्यूल के लिए दिखता है 'moduleResolution': 'node')? इसके लिए क्या मतलब है typings- यह परिवेश निर्भरता को भी संभालता है। क्या यह किसी भी तरह से संबंधित है?
रोनाल्ड ज़रीट्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.