UNPKG

rivo

Version:

🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.

16 lines (12 loc) • 554 B
import type { ToList } from "./ToList"; import type { Arg0, Fn } from "../HKT"; type _ExcludeEmptyObjectFromTuple<AS extends readonly unknown[]> = AS extends readonly [infer Head, ...infer Tail] ? {} extends Head ? _ExcludeEmptyObjectFromTuple<Tail> : readonly [Head, ..._ExcludeEmptyObjectFromTuple<Tail>] : readonly []; export type ExcludeEmptyObject<U> = _ExcludeEmptyObjectFromTuple<ToList<U>>[number]; export default interface ExcludeEmptyObjectFn extends Fn<[unknown], unknown> { def: () => ExcludeEmptyObject<Arg0<this>>; }