当前位置: 首页 > 知识库问答 >
问题:

为什么我得到'VideoSource'仅指一种类型,但在这里被用作值。[重复]

敖硕
2023-03-14

在第一个if检查中,我没有得到一个错误,在else检查中,如果我得到

VideoSource仅指一种类型,但在此处用作值。

let element:VideoSource|VideoTrack;
element = {
    src: '',
    videoType: 'video/mp4'
}

if (element instanceof  VideoTrack) {

}
else if (element instanceof  VideoSource) {

}

export interface VideoSource {
    src:string;
    videoType:'video/mp4'|'video/webm'|'video/ogg';
}

export interface VideoTrack {
    src:string;
    kind: 'subtitles'|'captions'|'chapters'|'descriptions'|'metadata'
    label?:string;
    srclang?:string;
    IsDefault?:'default';
}

共有1个答案

宇文良骏
2023-03-14

在typescript GitHub上查看这个问题的答案。还有这个答案。

基本上,因为接口只在编译时存在,并且在编译后被删除,所以不能在运行时使用它们进行检查。请注意,这在类中是可能的。

 类似资料: