array-flatten
Version:
Flatten nested arrays
15 lines (14 loc) • 446 B
TypeScript
/**
* Pick the value from an array.
*/
export declare type PickValue<T> = T extends ReadonlyArray<any> ? {
[K in Extract<keyof T, number>]: PickValue<T[K]>;
}[number] : T;
/**
* Flatten an `ArrayLike` object in TypeScript.
*/
export declare type FlatArray<T extends ArrayLike<any>> = Array<PickValue<T[number]>>;
/**
* Flatten an array indefinitely.
*/
export declare function flatten<T extends ArrayLike<any>>(array: T): FlatArray<T>;