2016-05-13 9 views
7

वहाँ सीधे एक शुद्ध जावास्क्रिप्ट परियोजना के लिए टाइपप्रति परिभाषाओं (.d.ts फ़ाइलें) जोड़ने के लिए (package.json में उदा) एक रास्ता है। मुझे उस पर कोई दस्तावेज नहीं मिल रहा है।एक एनपीएम पैकेज में टाइपस्क्रिप्ट परिभाषा फ़ाइल कैसे जोड़ें?

+0

दिलचस्प सवाल :) मैं सिर्फ का पालन करेंगे। – meorfi

उत्तर

9

एक NPM पैकेज को typings जोड़ने पर TypeScript Handbook में एक पृष्ठ है। मैं यहां कॉपी पेस्ट करना होगा: NPM संकुल

टाइपप्रति संकलक के लिए Node.js मॉड्यूल संकल्प एल्गोरिथ्म का पालन करते हुए नोड मॉड्यूल नाम निराकरण

Typings। टाइपस्क्रिप्ट एनपीएम पैकेज के साथ बंडल किए गए टाइपिंग भी लोड कर सकता है। कंपाइलर नियमों के निम्नलिखित सेट का उपयोग करके मॉड्यूल "foo" के लिए टाइपिंग खोजने की कोशिश करेगा:

उपयुक्त पैकेज फ़ोल्डर (node_modules/foo /) में स्थित package.json फ़ाइल को लोड करने का प्रयास करें। यदि मौजूद है, तो "टाइपिंग" फ़ील्ड में वर्णित टाइपिंग फ़ाइल के पथ को पढ़ें। उदाहरण के लिए, निम्नलिखित package.json में, संकलक node_modules/foo/lib/foo.d.ts पर typings

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

कोशिश एक फ़ाइल का नाम index.d.ts लोड करने के लिए हल होगा पैकेज फ़ोल्डर में स्थित (node_modules/foo /) - इस फ़ाइल में पैकेज के लिए टाइपिंग होनी चाहिए।

मॉड्यूल रिज़ॉल्यूशन के लिए सटीक एल्गोरिदम यहां पाया जा सकता है।

आपकी परिभाषा फ़ाइलों

  • be.d.ts फ़ाइलों
  • बाहरी मॉड्यूल के रूप में लिखा जाना चाहिए
  • ट्रिपल स्लेश संदर्भ शामिल नहीं

औचित्य है उस टाइपिंग को संकलित फाइलों के सेट में नई संकलित वस्तुओं को नहीं लाया जाना चाहिए; अन्यथा पैकेज में वास्तविक कार्यान्वयन फाइल संकलन के दौरान अधिलेखित किया जा सकता है। इसके अतिरिक्त, लोडिंग टाइपिंग को उसी लाइब्रेरी के विभिन्न संस्करणों से संभावित विरोधाभासी प्रविष्टियों को लाकर वैश्विक स्कोप को प्रदूषित नहीं करना चाहिए। जब तक आप package.json में types संपत्ति का उपयोग

+1

लगता है कि यह 'टाइप' नहीं होना चाहिए 'टाइपिंग'। –

+0

जब मैंने प्रश्न का उत्तर दिया तो यह 'टाइपिंग' था। यहां [संग्रह] है (https://web.archive.org/web/20160412204540/https://www.typescriptlang.org/docs/handbook/typings-for-npm-packages.html)। साथ ही, वर्तमान दस्तावेज़ीकरण से: 'ध्यान दें कि "टाइपिंग" फ़ील्ड "प्रकार" के समानार्थी है, और इसका भी उपयोग किया जा सकता है।' – rgvassar

+0

पिछली कहानी के लिए धन्यवाद।सभी मौजूदा उदाहरण ऑनलाइन 'प्रकार' का उपयोग करें। यदि आप पहले से नहीं हैं, तो अपना उत्तर अपडेट करने पर विचार करें। –

1

विजुअल स्टूडियो 2015 परिभाषा फ़ाइल को नहीं पहचानेंगे
https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html

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

* आप तीन स्लैश का उपयोग करना होगा अपने ts में संदर्भ पथ शामिल फ़ाइलें।
/// <reference path="../node_modules/../lib/main.d.ts" />

+0

आपके द्वारा प्रदान किए गए लिंक से: 'ध्यान दें कि "टाइपिंग" फ़ील्ड "प्रकार" के पर्याय का है, और इसका भी उपयोग किया जा सकता है। – Izhaki

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