rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
30 lines (26 loc) • 663 B
TypeScript
import type { Args, GenericFn, GenericResolver } from "..";
/**
* Create a tuple with one element.
*
* Sig: `<T>(x: T) => readonly [T]`
*
* @example
* ```typescript
* type R1 = Of1<1>;
* // ^?: readonly [1]
* type R2 = Of1<"foo" | false>;
* // ^?: readonly ["foo" | false]
* ```
*/
export type Of1<T> = readonly [T];
interface Resolver extends GenericResolver<[unknown], readonly [unknown]> {
on1: ([x]: Args<this>) => [[], readonly [typeof x]];
}
/**
* [Fn] Create a tuple with one element.
*
* Sig: `<T>(x: T) => readonly [T]`
*/
export default interface Of1Fn extends GenericFn<Resolver> {
def: ([x]: Args<this>) => Of1<typeof x>;
}