代码之家  ›  专栏  ›  技术社区  ›  Mike Jerred

@ViewChild变量应该有什么类型?

  •  -1
  • Mike Jerred  · 技术社区  · 7 年前

    如果我有一个这样的组件,它引用一个本地HTML元素,应该使用什么类型的注释?

    @Component({
        template: `<video #test></video`
    })
    export class AppComponent {
        @ViewChild('test') test: any;
    
        constructor() {
            let nativeElement = this.test.nativeElement;
        }
    }
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Mike Jerred    7 年前

    这个 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
        }
    }
    
        2
  •  0
  •   alt255    7 年前

    你可以用 ElementRef<typeoElement>

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

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

    角度文档包含 good example

    推荐文章