/** @module array/pushArray.ts */ import { untypedCurry } from '../function/untypedCurry' import { Append, ValueOf } from '../helper-types' export function pushArray( arr: A, item: B ): A extends any[] ? Append: any export function pushArray( arr: A ): ( item: B ) => A extends any[] ? Append: any export function pushArray( arr: A, item: B ): Array|B> export function pushArray( arr: A ): ( item: B ) => Array|B> /** * Push a item onto the end of an array * @param arr array to push values onto * @param item item to push onto array * @sig a[] -> a -> a[] * @example * pushArray([1,2,3])('4') * //=> [1,2,3,'4'] : [number, number, number, string] */ export function pushArray( ...args ) { return untypedCurry( ( arr, item ) => arr.concat( [ item ] ) ) }