gpt4 book ai didi

javascript - typescript "Property does not exists on type Element"

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:57 24 4
gpt4 key购买 nike

我正在开始我的 Typescript 之旅。所以我在我的 Html 和 .ts 文件中有 video 标签:

...
class KomakhaPlayer {
private container = ...;
private video: Element = this.container.getElementsByClassName( 'video' )[ 0 ];
private controls = ...;

constructor(){
this.video.controls = false; // ts error
...
}
}
...

如您所见,this.video 具有 Element 类型,但在 this.video.controls 下面抛出一个 Typescript 错误 “元素”类型不存在属性“控件”

临时我将Element类型更改为any,但我想知道如何正确解决这个错误并在以后处理类似的问题。提前致谢!

解决方案:所以正确的方法是这样定义:

private video: HTMLVideoElement = <HTMLVideoElement>this.container.getElementsByClassName( 'video' )[ 0 ];

@deceze 在评论下方的解释

最佳答案

Element 是一个非常通用的根对象,它确实没有 controls 属性。参见 https://developer.mozilla.org/en-US/docs/Web/API/Element .你要找的是 HTMLVideoElement , 它继承自 HTMLMediaElement ,它有一个 controls属性。

Typescript 是完全正确的:你告诉它你正在使用一个 Element,Typescript 警告你一个 Element 不知道有 controls.

关于javascript - typescript "Property does not exists on type Element",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com