В вашем коде
import {
Component, OnInit, Input, Output, OnChanges, SimpleChanges, ViewChild,
EventEmitter, HostListener
} from '@angular/core';
import { WjFlexGridParent } from '../fw/wijmo/wj-flex-grid-parent.class';
@Component({
selector: '...',
templateUrl: '...',
styleUrls: ['...']
})
export class ChildComponent extends WjFlexGridParent implements OnChanges, OnInit {
_exportFormatItem(args: m_wjcGridXlsx.XlsxFormatItemEventArgs) {}
}
Вы используете необъявленный идентификатор, m_wjcGridXlsx
. В области применения просто нет ничего с названием m_wjcGridXlsx
. Вы действительно унаследовали свойство с именем m_wjcGridXlsx
от WjFlexGridParent
, но, как и в случае с любым другим свойством, вы должны соответствовать, в данном случае либо this
, либо super
.
Однако, если мы напишем
_exportFormatItem(args: this.m_wjcGridXlsx.XlsxFormatItemEventArgs) {}
this.m_wjcGridXlsx
- значение, используемое там, где ожидается пространство имен.
Простое и идиоматическое решение c - импортировать тип и использовать его.
import {XlsxFormatItemEventArgs} from 'wijmo/wijmo.grid.xlsx';
export class ChildComponent {
_exportFormatItem(args: XlsxFormatItemEventArgs) {}
}
Это совершенно не связано с наследованием, классами и свойствами. Он просто импортирует тип из модуля, чтобы мы могли использовать его для аннотирования значения, в данном случае параметр args
.
Если вы предпочитаете, вы можете использовать импорт пространства имен модуля и ссылаться на тип, определенный с помощью псевдоним пространства имен, который вы создаете в операторе импорта.
import * as wijmo from 'wijmo/wijmo.grid.xlsx';
export class ChildComponent {
_exportFormatItem(args: wijmo.XlsxFormatItemEventArgs) {}
}