2016-03-01 5 views
5

पढ़ना Angular 2 Quickstart मैं TypeScript Configuration के तहत इस खंड में आए:टाइपिंग टूल जानबूझकर टाइपिंग के डुप्लिकेट सेट क्यों बनाते हैं?

टंकण फ़ाइल टकराव

टाइपप्रति संकलक एक प्रकार की परिभाषा को बर्दाश्त नहीं करता है। उदाहरण के लिए, यह वादा प्रकार के लिए दो परिभाषाओं को दिया गया है, तो यह एक त्रुटि फेंकता है।

डबल परिभाषाएं आम हैं। वास्तव में, टाइपिंग टूल जानबूझकर टाइपिंग के डुप्लिकेट सेट बनाता है (कारणों से सबसे अच्छी तरह से कहीं और समझाया गया है)।

typings 
    browser 
    ambient 
     es6-shim 
     es6-shim.d.ts 
    main 
    ambient 
     es6-shim 
     es6-shim.d.ts 
    browser.d.ts 
    main.d.ts 

ES6-शिम typings दोहराया गया है और browser.d.ts और main.d.ts है: typings फ़ोल्डर है जहाँ हम जैसे कुछ खोजना चाहिए के लिए परियोजना संरचना में देखो ओवरलैपिंग सामग्री।

अगर मैं typings readme पढ़ें, यह कहते हैं:

आप सामने के अंत पैकेज यह अनुशंसा की जाती आप typings/browser.d.ts का उपयोग का निर्माण कर रहे हैं। ब्राउजर टाइपिंग ब्राउज़र फ़ील्ड ओवरराइड का पालन करके संकलित की जाती है।

प्रश्न:

क्यों typings tool जानबूझ typings की डुप्लीकेट सेट बनाने करता है?

यह अनुशंसा की जाती है कि आप अग्रिम-अंत पैकेज के लिए typings/browser.d.ts का उपयोग क्यों करें?

मेरा अनुमान है क्योंकि browser फ़ील्ड का समर्थन विभिन्न प्रकारों को बना सकता है?

यदि ऐसा है तो browser फ़ील्ड क्या है और यह किस तरह से टाइपिंग बदलता है?

उत्तर

4

आपका अनुमान सही था। टाइपिंग पहचानती है कि पैकेज ब्राउज़र और अन्य स्थानों पर अलग-अलग काम कर सकते हैं। यह सुविधा सबसे आम पैकेजों के लिए अनावश्यक है क्योंकि आइसोमोर्फिक जेएस ट्रेंडी है और कई जेएस वातावरण सभी पैकेजों पर समान रूप से काम करते हैं।

हालांकि, मेरा कोड जानबूझकर कार्यक्षमता के लिए पर्यावरण की जांच कर रहा था, या यदि मैं ब्राउज़र में टूटी हुई सुविधाओं का उपयोग करने से उपयोगकर्ताओं को रोकना चाहता था, तो यह उपयोगी होगा।

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

आखिरकार, आपके लिए बहुत कम लागत है (आपकी मशीन पर फ़ाइल स्थान के अलावा) और संभावित रूप से कार्यक्षमता जो अन्यथा असंभव होगी।

+0

तो, 'मुख्य' फ़ोल्डर में नोड के लिए परिभाषा होगी जिसमें आपका मतलब है? – lbrahim

+1

मुख्य रूप से @ इब्राहिम नोड, लेकिन अन्य जेएस-आधारित वातावरण भी। :) बस ब्राउजर नहीं। – Harangue

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