我将开始我的 Typescript 之旅。所以我有video
在我的 Html 和中标记.ts
将这些行归档:
...
class KomakhaPlayer {
private container = ...;
private video: Element = this.container.getElementsByClassName( 'video' )[ 0 ];
private controls = ...;
constructor(){
this.video.controls = false; // ts error
...
}
}
...
如你看到的this.video
has Element类型,但在下面this.video.controls
向我抛出打字稿错误类型“元素”上不存在属性“控件”.
暂时我变了Element
键入至any
, 但是我要know如何正确解决此错误并在以后处理类似错误。提前致谢!
解决方案:所以正确的方法是这样定义的:
private video: HTMLVideoElement = <HTMLVideoElement>this.container.getElementsByClassName( 'video' )[ 0 ];
解释者@deceze下面在评论中
Element
是一个非常通用的根对象,它确实没有controls
属性。看https://developer.mozilla.org/en-US/docs/Web/API/Element https://developer.mozilla.org/en-US/docs/Web/API/Element。您正在寻找的是HTMLVideoElement https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement,它继承自HTMLMediaElement https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement,其中有一个controls https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controls属性。
Typescript 是完全正确的:你告诉它你正在使用Element
,并且 Typescript 警告您Element
不知道有controls
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)