首页 > 解决方案 > 读取类型的参数:typeof elementref 不可分配给类型属性静态的参数类型中缺少

问题描述

我在 ag-angular-grid 中创建了自定义日期过滤器。这是日期过滤器组件:

import { Component, ElementRef, ViewChild } from '@angular/core';

@Component({
  selector: 'app-loading-overlay',
  template: `
        <div #flatpickrEl class="ag-input-wrapper custom-date-filter" role="presentation">
            <input type='text' data-input />
            <a class='input-button' title='clear' data-clear>
                <i class='fa fa-times'></i>
            </a>
        </div>
    `,
})

export class CustomDateFilter {
  @ViewChild("flatpickrEl", { read: typeof ElementRef }) flatpickrEl: ElementRef;
.....
}

错误在这个地方:{ read: typeof ElementRef }

错误是:

A wrapper around a native element inside a View.

An ElementRef is backed by a render-specific element. In browser, this is usually a DOM element.

argument of type {read: 'string' | 'number' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function' } is not assignable to parameter of type { read?: any static: boolean; } Property 'static' is missing in type {read: 'string' | 'number' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function' }

标签: angularag-grid-angular

解决方案


从 Angular 8 开始,您需要static在选项中提供属性:

@ViewChild("flatpickrEl", { read: typeof ElementRef, static: true | false }) flatpickrEl: ElementRef;

推荐阅读