tamda
Version:
Practical functional programming library for TypeScript
26 lines (22 loc) • 627 B
text/typescript
import { infer } from '../function/infer';
/**
* Flattens one level of an `array`.
* @param array Array to flatten.
*/
export function flatten<T>(array: (T | T[])[]): T[];
/**
* Returns a function that
* flattens one level of an `array`.
*/
export function flatten<T>(): typeof deferred;
export function flatten() {
return inferred.apply(undefined, arguments);
}
/**
* Flattens one level of an `array`.
* @param array Array to flatten.
*/
declare function deferred<T>(array: (T | T[])[]): T[];
const inferred = infer(
<T>(array: (T | T[])[]): T[] => Array.prototype.concat(...array)
);