2016-02-21 4 views
7

पर संपत्ति 'src' मौजूद नहीं है मुझे टाइपस्क्रिप्ट से एक त्रुटि मिलती है और मुझे यकीन नहीं है कि इसे कैसे ठीक किया जाए। जब कोड "संकलित" होता है तो कोड ठीक काम करता है लेकिन मैं त्रुटि को सही नहीं कर सकता। मैंने उन हिस्सों को निकाला है जिनमें मेरे कोड से त्रुटि शामिल है। मुझे लगता है कि मुझे स्रोत को पूर्वनिर्धारित करना है लेकिन यह सुनिश्चित नहीं है कि कैसे।टाइपस्क्रिप्ट: 'HTMLElement'

संपादक में और पर Gulp त्रुटि संदेश संकलन:

" 'संपत्ति' src 'प्रकार पर मौजूद नहीं है HTMLElement'.at लाइन 53 col 17"

... 

element:HTMLElement; /* Defining element */ 

''' 
this.element = document.createElement('img'); /*creating a img*/ 

''' 

यह वह जगह है एक विधि देने के साथ तत्व, स्थिति, शीर्ष और बाएं सभी कार्यों को प्रस्तुत करने के लिए मैं जिस विधि को चलाता हूं।

display() { 
    this.element.src = this.file; /*This is the line that gives the error*/ 
    this.element.style.position = "absolute"; 
    this.element.style.top = this.pointX.toString() + "px"; 
    this.element.style.left = this.pointY.toString() + "px"; 

    document.body.appendChild(this.element); 
}; 
+0

प्रभावी ढंग से, '' HTMLElement.prototype' src' नहीं है, लेकिन 'HTMLImageElement.prototype' चाहिए। मुझे टाइपस्क्रिप्ट के बारे में कोई जानकारी नहीं है, लेकिन 'तत्व' को 'HTMLElement' के बजाय' HTMLImageElement' के रूप में परिभाषित करने का प्रयास करें। – Oriol

+0

'this.element.setAttribute (" src ", this.file); 'या तो काम करेगा। –

+0

@ सी-मुस्कुराहट हालांकि मुझे नहीं लगता कि आपका उत्तर सही समाधान है, मैं –

उत्तर

10

क्योंकि srcHTMLElement प्रकार की संपत्ति नहीं है, लेकिन HTMLImageElement है।

आप कुछ आप एक img तत्व मिल जाएगा रहे हैं, तो आप सही उप-प्रकार के साथ अपने चर घोषित करने के लिए चाहते हो सकता है:

element: HTMLImageElement; /* Defining element */ 

// ... 

this.element = document.createElement('img'); /*creating a img*/ 

इसके अलावा, आप क्या document.createElement रिटर्न पर एक नजर है सकते हैं। यदि आप "img" को इसके तर्क के रूप में निर्दिष्ट करते हैं तो यह वही प्रकार है।

+0

को संभालने के लिए एक अलग तरीके से नोटिस की सराहना करता हूं, मेरी समस्या हल करने के लिए बहुत बहुत धन्यवाद, मैंने अभी माना है कि HTMLElement एक सामान्य डोम तत्व था वह सब फिट बैठता है। –

+0

और आपकी धारणा पूरी तरह से सही थी। एक 'HTMLImageElement' वास्तव में एक' HTMLElement' भी है। अधिक सटीक, यह एक उप प्रकार है। लेकिन सभी तत्वों में 'src' विशेषता नहीं है, इसलिए इस मामले में उप-टाइप करने का एक कारण है। –

+0

उस स्पष्टीकरण के लिए धन्यवाद –

0

आप HTMLImageElement है, जो एक src संपत्ति है के रूप में यह घोषणा करने के लिए की जरूरत है।

17

का प्रयोग कास्टिंग:

(<HTMLImageElement>document.querySelector(".company_logo")).src 
0
document.getElementById('img').setAttribute('src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='); 

सेट विशेषता विधि के माध्यम से सेट स्रोत।

0

@ whereDatApp.com जैसे कास्टिंग का उपयोग करने के लिए सुझाव दिया गया है। इस तरह क्वेरी चयनकर्ता का उपयोग करना:

querySelector("img[name='menubanner']") 
+0

[कृपया अपना कोड प्रारूपित करें] (https://stackoverflow.com/editing-help) – Dwhitz

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