export type Source = { [ key ] : any ; } ; export class Chainable < T > { protected attrs : T & { [ key ] : any ; } ; get ( k ) { return this . attrs [ k ] ; } /**
     * Set a private attribute.
     */ set ( k , v ) { this . attrs [ k ] = v ; return this ; } /**
     * like Object.assign.
     */ assign ( source ) { return Object . assign ( this , source ) ; } ; }