interface IMap<T> { [index: string]: T; [index: number]: T; }
export interface IMap<I extends string | number, T> { [property: I]: T; }