export default class ConfProxy { static getKey(args: string[]): string { let out = "" args.forEach(element => { out += element out += "_" }); return out } static setKey(target: any, args: string[]): string { let out = "" args.forEach(element => { out += target[element] out += "_" }); return out } pool: { [key: string]: T } = {} name:string = "" constructor(xlsname:string,conf: T[], ...args: string[]) { this.name = xlsname conf.forEach(element => { this.pool[ConfProxy.setKey(element, args)] = element }); } getItem(...args: string[]): T | null { return this.pool[ConfProxy.getKey(args)] } } export class ConfListProxy { pool: { [key: string]: T[] } = {} name:string = "" constructor(xlsname:string,conf: T[], ...args: string[]) { this.name = xlsname conf.forEach(element => { let key = ConfProxy.setKey(element, args) if (this.pool[key] == null) { this.pool[key] = [] } this.pool[key].push(element) }); } getItemList(...args: string[]): T[] | null { return this.pool[ConfProxy.getKey(args)] } }