Свойство 'getFrameworkComponentInstance' не существует для типа 'ICellRendererComp'

Я пытаюсь получить экземпляр средства визуализации ячеек (угловой компонент) в обработчике события rowSelected:

onRowSelected($event) {
    var selectedRow = this.gridApi.getDisplayedRowAtIndex($event.rowIndex);
    var params = { columns: ['added'], rowNodes: [selectedRow]};
    var instances = this.gridApi.getCellRendererInstances(params);
    if (instances.length > 0) {
        var wrapperInstance = instances[0].getFrameworkComponentInstance();
    }
}

К сожалению, я получаю сообщение об ошибке при составлении углового приложения (ts):

Свойство 'getFrameworkComponentInstance' не существует для типа 'ICellRendererComp'

Реализация взята из официальной документации на https://www.ag-grid.com/javascript-grid-cell-rendering-components/ (найти Доступ к инстансам Cell Renderer).

Здесь возможен фабричный метод, который определяет публичный getFrameworkComponentInstance .

Это неожиданная ситуация, потому что когда я отлаживаю этот метод, я могу получить рендерер с методом getFrameworkComponentInstance в instances[0] .

Всего 1 ответ


Из того, что я видел в интерфейсах ICellRenderer , интерфейс ICellRendererComp не имеет функции getFrameworkComponentInstance.

Интерфейсы ICellRendererComp

Я много работал с ag-grid-angular и обнаружил, что иногда интерфейсы не имеют отношения к тому, что на самом деле находится в объекте (отсутствуют функции / переменные).

Проблема в основном из-за того, что tslint не доверяет методу, поскольку его нет в интерфейсе. Чтобы исправить это, я создал свой собственный пользовательский интерфейс, который расширяет ICellRendererComp, но с помощью функции.

введите описание изображения здесь

Таким образом, когда вы пытаетесь вызвать свой экземпляр, вы можете привести его к своему интерфейсу. Я перепробовал много вещей, и только это сработало для меня.

введите описание изображения здесь


Есть идеи?

10000