/** * Array polyfills */ interface Array { first(): T; insertAt(item: T, index: number): T[]; last(): T; merge(list: T[]): T[]; pushItem(item: T): T[]; removeAt(index: number): T[]; removeItem(item: T): T[]; removeItem(key: string, value?: any): T[]; toggleItem(item: T): T[]; unshiftItem(item: T): T[]; updateItem(key: string, data: any): T[]; }