14

में क्रोम एक्सटेंशन एपीआई का उपयोग करना मैं टाइपस्क्रिप्ट में लिखे गए क्रोम एक्सटेंशन का निर्माण कर रहा हूं। मैं वेबस्टॉर्म का उपयोग कर रहा हूं और मैंने अपनी परियोजना में chrome-DefiniteltyTyped लाइब्रेरी जोड़ा।टाइपस्क्रिप्ट

हालांकि, जब मैं इसे अपने टाइपस्क्रिप्ट कोड में लिखता हूं: chrome.extension.getURL मुझे एक त्रुटि मिली: cannot find name 'chrome'

इस वजह से, मेरी जावास्क्रिप्ट फ़ाइल उत्पन्न नहीं हुई है और मैं इसे अपने एक्सटेंशन में उपयोग नहीं कर सकता।

क्या आपके पास कोई समाधान है?

उत्तर

18

ठीक काम करना चाहिए कि: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/chrome/index.d.ts

सुझाव: सुनिश्चित करें कि आप एक reference टैग जोड़ा है बनाने:

/// <reference path="pathTo/chrome.d.ts"/>

+0

उपयोगी है धन्यवाद! अगर यह काम आपको जल्द ही बताएगा। –

+0

सबकुछ अभी काम करता है! धन्यवाद –

+0

लिंक अब मान्य नहीं है ... – Gerard

17

टाइपप्रति 2 के रूप में (या 2.x, यकीन नहीं), तो आपको चाहिए @types से क्रोम प्रकार आयात करें।

package.json में:

"devDependencies": { 
    ... 
    "@types/chrome": "0.0.35", // or just npm install --save-dev @types/chrome 

और tsconfig में:

"types": [ 
     //(various types, e.g. jquery, core-js), 
     "chrome" 
    ] 
+0

क्या आप समझा सकते हैं कि यह 'देवता पर निर्भरता' क्यों है और नियमित नहीं है? – Soflete

+0

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

+0

यह कैसे काम करता है? हमें '@ प्रकार/क्रोम' से "आयात {क्रोम} टाइप करना होगा;"? – Gerard