打字稿:Property' src'在类型' HTMLElement'中不存在

时间:2016-02-21 21:17:21

标签: javascript typescript

我从Typescript收到错误,我不知道如何纠正它。当编译"编码时,代码工作正常。但我无法纠正错误。我从代码中提取了涉及错误的部分。我想我必须预先确定src但不确定如何。

编辑器和Gulp编译错误消息:

" Property' src'类型' HTMLElement' .at line 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);
};

7 个答案:

答案 0 :(得分:27)

使用演员:

(<HTMLImageElement>document.querySelector(".company_logo")).src

答案 1 :(得分:16)

因为src不是HTMLElement类型的属性,而是HTMLImageElement的属性。

如果您确定您将获得img元素,则可能需要使用正确的子类型声明您的变量:

element: HTMLImageElement; /* Defining element */

// ...

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

另外,您可能想看一下document.createElement返回的内容。如果您指定"img"作为参数,那么它就是完全相同的类型。

答案 2 :(得分:3)

document.getElementById('img').setAttribute( 'src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' );

通过set属性方法设置source。

答案 3 :(得分:1)

我们可以用这两种方法解决它..

案例 - 1

<HTMLImageElement>

前使用document.getElementById('myId')
var myImg = <HTMLInputElement>document.getElementById('myId');

myImg.src = 'https://picsum.photos/id/237/200/300';

案例 - 2

使用setAttributesrc设置为image如下

var myImg = document.getElementById('myId');

myImg.setAttribute('src', 'https://picsum.photos/id/237/200/300');

答案 4 :(得分:0)

您需要将其声明为HTMLImageElement,其属性为src

答案 5 :(得分:0)

使用像@whereDatApp.com建议的演员为我工作。使用这样的查询选择器:

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

答案 6 :(得分:0)

一起去:

<TouchableOpacity
  style={style.button}
  onPress={() => loginWithEmail(email, password)}
>
  <Text style={style.buttonText}>LOGIN</Text>
</TouchableOpacity>;