source: node_modules/ts-toolbelt/out/Object/AtLeast.d.ts@ d24f17c

main
Last change on this file since d24f17c was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1012 bytes
RevLine 
[d24f17c]1import { _Pick } from './Pick';
2import { Key } from '../Any/Key';
3import { Keys } from '../Any/Keys';
4import { RequiredFlat } from './Required';
5import { Extends } from '../Any/Extends';
6import { ComputeRaw } from '../Any/Compute';
7import { OptionalFlat } from './Optional';
8/**
9 * @hidden
10 */
11declare type RequiredIfKeys<O extends object, K extends Key> = Extends<keyof O & K, K> extends 1 ? RequiredFlat<O> : O;
12/**
13 * @hidden
14 */
15declare type __AtLeast<O extends object, K extends Key> = K extends keyof O ? _Pick<O, K> & OptionalFlat<O> : O;
16/**
17 * @hidden
18 */
19declare type _AtLeast<O extends object, K extends Key> = ComputeRaw<__AtLeast<RequiredIfKeys<O, K>, K>>;
20/**
21 * Make that at least one of the keys `K` are required in `O` at a time.
22 * @param O to make required
23 * @param K (?=`keyof O`) to choose fields
24 * @returns [[Object]] [[Union]]
25 * @example
26 * ```ts
27 * ```
28 */
29export declare type AtLeast<O extends object, K extends Key = Keys<O>> = O extends unknown ? _AtLeast<O, K> : never;
30export {};
Note: See TracBrowser for help on using the repository browser.