import { TemplateRef } from '@angular/core' ; export abstract class Entity { abstract get id ( ) : number | string ; [ key ] : any ; constructor ( init ? ) { Object . assign ( this , init ) ; } } export class EntityColumnDef < T > { readonly property ! : string ; readonly header = this . property ; public visible = true ; readonly sticky ? : 'start' | 'end' ; readonly template ? : TemplateRef < any > ; readonly displayFn = ( entity ) => entity [ this . property ] ; public constructor ( init ? ) { Object . assign ( this , init ) ; } }