Je reçois une erreur de TypeScript et je ne sais pas comment la corriger. Le code fonctionne bien lorsqu'il est "compilé" mais je ne peux pas corriger l'erreur. J'ai extrait les parties qui impliquent l'erreur de mon code. Je suppose que je dois prédéfinir le SRC mais je ne sais pas comment.
Erreur msg dans l'éditeur et sur la compilation Gulp:
"La propriété 'src' n'existe pas sur le type 'HTMLElement'.à la ligne 53, col 17"
...
element:HTMLElement; /* Defining element */
'''
this.element = document.createElement('img'); /*creating a img*/
'''
C’est la méthode que j’utilise pour rendre l’élément, la position, en haut et à gauche, tout fonctionne sans donner d’erreur.
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);
};
Parce que src
n'est pas une propriété du type HTMLElement
, mais de HTMLImageElement
.
Si vous êtes certain d'obtenir un élément img, vous pouvez déclarer votre variable avec le sous-type correct:
element: HTMLImageElement; /* Defining element */
// ...
this.element = document.createElement('img'); /*creating a img*/
De même, vous voudrez peut-être jeter un coup d’œil sur ce que document.createElement
renvoie. C'est le même type si vous spécifiez "img"
comme argument.
Utilisation de la coulée:
(<HTMLImageElement>document.querySelector(".company_logo")).src
document.getElementById('img').setAttribute( 'src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' );
Définir la source via la méthode d'attribut set.
Utiliser un casting comme @ oùDatApp.com m'a suggéré de travailler. Utiliser le sélecteur de requête comme ceci:
querySelector("img[name='menubanner']")
Vous devez le déclarer en tant que HTMLImageElement
, qui possède une propriété src
.