2016-08-14 4 views
7

जब टाइपस्क्रिप्ट का उपयोग करने की बात आती है, तो हमें टाइप परिभाषा फ़ाइलों (* .d.ts) को हल करने के तरीके पर विचार करना होगा।टाइपस्क्रिप्ट के लिए प्रकार परिभाषा प्रबंधन प्रणाली (जैसे tsd) के लिए सबसे अच्छा समाधान क्या है?

जब तक मुझे पता है, टाइपस्क्रिप्ट परिभाषा प्रणाली को प्रबंधित करने के लिए कई प्रणालियों हैं।

  • tsd
  • typings
  • @types

मुझे लगता है कि tsd सबसे पुराना है और वह मूल है। लेकिन, क्यों typings पैदा होने की आवश्यकता है? मुझे लगता है कि टाइपिंग के लिए परिभाषा फाइल बनाना थोड़ा जटिल है।

और वास्तव में @types क्या है?

फिर, इसके आसपास सबसे अच्छा समाधान क्या है?

+0

मैं मैन्युअल रूप से स्थानीय रूप से अपने टाइपिंग का प्रबंधन करता हूं; आश्चर्य करता है। मैं कभी-कभी उन्हें निश्चित रूप से कॉपी करता हूं अगर वे पर्याप्त गुणवत्ता और अद्यतित हैं, जो अक्सर नहीं होता है। – AlexG

उत्तर

8

टाइपस्क्रिप्ट के आसपास टाइपिंग प्रबंधन पारिस्थितिक तंत्र के पीछे की कहानी बहुत बड़ी है।

सबसे पहले (अभी भी) एक मोनोलिथ भंडार था जिसे DefinitelyTyped कहा जाता था जिसे विभिन्न पुस्तकालयों के लिए अपनी टाइपिंग में योगदान देने वाले सभी डेवलपर्स के लिए एक केंद्र के रूप में उपयोग किया जाता था।

इस भंडार के कारण एक टाइपिंग मैनेजर tsd कहलाता है जो सीधे उस भंडार से टाइपिंग लेता है और उन्हें आपकी परियोजना में स्थानीय रूप से सहेजता है।

इस बीच डीटी रेपो इसकी स्केलिंग क्षमताओं और had to be restructured से अधिक हो गया। चर्चा d.ts. फ़ाइल की तरह दिखने के तरीके में आगे बढ़ी, इसलिए एक बिंदु पर आपकी परियोजना में टाइपिंग को शामिल करने का एक और तरीका था। एक और समस्या पुस्तकालयों और टाइपस्क्रिप्ट कंपाइलर का संस्करण था।

फिर एक बिंदु पर Blake Embrey एक नया typings प्रबंधक typings जो DefinitelyTyped के लिए एक समर्थन है और एक d.ts की संरचना के नए प्रस्तावित तरीका था बुलाया बनाया। नई संरचना दो प्रकार के मॉड्यूल के लिए अनुमति दी गई - ग्लोबल्स (निश्चित रूप से परिभाषित किए गए अधिकांश) और मॉड्यूल जिन्हें encapsulated माना जाता है।

बाद में TypeScript 2.0 Beta माइक्रोसॉफ्ट द्वारा घोषित किया गया था। टाइपस्क्रिप्ट के पीछे की टीम को टाइपिंग फाइलों को संभालने में एक अलग तरीके की आवश्यकता महसूस हुई। उन्होंने क्या किया @types एनपीएम स्कोप, जो they announced will be the new way of handling typings था। इस बिंदु पर @types केवल टाइपस्क्रिप्ट 2.0 के साथ काम करता है।

घोषणा फाइलें (.d.ts फ़ाइलें) टाइपस्क्रिप्ट में मौजूदा जावास्क्रिप्ट पुस्तकालयों का उपयोग करने का एक मौलिक हिस्सा हैं, लेकिन उन्हें हमेशा एक ऐसा स्थान रहा है जहां हम जानते हैं कि सुधार के लिए जगह थी। जैसे-जैसे हम टाइपस्क्रिप्ट 2.0 के करीब आते हैं, हम चीजों को सरल बनाने के लिए हमारी योजना के चुपके चोटी को दिखाने के लिए बहुत उत्साहित हैं। टाइपस्क्रिप्ट 2.0 में टाइप घोषणाएं प्राप्त करने के लिए एनपीएम के अलावा कोई उपकरण की आवश्यकता नहीं होगी।

अपने प्रश्न का जवाब देने के लिए तो:

आप v2.0 उपयोग typings नीचे टाइपप्रति उपयोग करते हैं, लेकिन अगर आप 2 का उपयोग करते हैं।0 @types

+4

धन्यवाद @drinchev, सटीक दिखता है - कुछ मूल्यवान बात यह है कि टाइपिंग थी और यह दिखाने के लिए एक अभ्यास है कि टाइपस्क्रिप्ट का उपयोग करके कैसे निर्भरता _should_ प्रबंधित की जा सकती है (पहले यह निश्चित रूप से निश्चित रूप से परिभाषित नहीं था, और मॉड्यूल लेखक के रूप में यह अस्वीकार्य था)। टाइपस्क्रिप्ट अब इसे समझता है और 2.0 के लिए कोर में एक प्रस्ताव को शामिल करने में मदद के लिए काम किया है। – blakeembrey

संबंधित मुद्दे