@ViewChild变量应具有哪种类型?

时间:2018-07-23 05:04:58

标签: angular typescript viewchild

如果我有这样的组件,它引用了本机HTML元素,应使用哪种类型的注释?

@Component({
    template: `<video #test></video`
})
export class AppComponent {
    @ViewChild('test') test: any;

    constructor() {
        let nativeElement = this.test.nativeElement;
    }
}

2 个答案:

答案 0 :(得分:0)

应使用ElementRef<>类型,例如

@Component({
    template: `<video #test></video`
})
export class AppComponent {
    @ViewChild('test') test: ElementRef<HTMLVideoElement>;

    constructor() {
        let nativeElement = this.test.nativeElement;
        // nativeElement now has type HTMLVideoElement
    }
}

答案 1 :(得分:0)

您可以使用ElementRef<typeoElement>(其中typeOfElement是您引用的元素的错字)在上面的答案中显示。

如果您访问的元素不是本机元素,则可以使用该组件的类型

例如 @ViewChild('test') test: ComponentName;

Angular文档包含一个good example