rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
22 lines (18 loc) • 655 B
TypeScript
import type { Args, GenericFn, GenericResolver } from "../HKT";
/**
* Get the element at index 1 of a tuple.
*
* Sig: `<TS extends readonly [unknown, unknown, ...unknown[]]>(xs: TS) => TS[1]`
*/
export type _1<TS extends readonly unknown[]> = TS[1];
interface Resolver extends GenericResolver<[readonly [unknown, unknown, ...unknown[]]], unknown> {
on1: ([xs]: Args<this>) => [[], (typeof xs)[1]];
}
/**
* [Fn] Get the element at index 1 of a tuple.
*
* Sig: `<TS extends readonly [unknown, unknown, ...unknown[]]>(xs: TS) => TS[1]`
*/
export default interface _1Fn extends GenericFn<Resolver> {
def: ([xs]: Args<this>) => _1<typeof xs>;
}