Advertisement
chatasma

Untitled

Feb 23rd, 2020
1,067
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Reader<T extends Formatter> {
  2.   datasource: Array<any>
  3.  
  4.   constructor(datasource: Array<any>) {
  5.     this.datasource = datasource
  6.   }
  7.  
  8.   read(id: number) {
  9.     const data = this.datasource[id]
  10.     if (!data) {
  11.       throw new Error(`${id} was not found.`)
  12.     }
  13.  
  14.     return this.format(data)
  15.   }
  16.  
  17.   format(data: any): T {
  18.     return new Formatter(data) as T;
  19.   }
  20. }
  21.  
  22. class WidgetReader extends Reader<WidgetFormatter> {
  23.   format(data: any): WidgetFormatter {
  24.     return new WidgetFormatter(data)
  25.   }
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement