123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import {ConditionalKeys} from './conditional-keys';
-
- /**
- Pick keys from the shape that matches the given `Condition`.
-
- This is useful when you want to create a new type from a specific subset of an existing type. For example, you might want to pick all the primitive properties from a class and form a new automatically derived type.
-
- @example
- ```
- import {Primitive, ConditionalPick} from 'type-fest';
-
- class Awesome {
- name: string;
- successes: number;
- failures: bigint;
-
- run() {}
- }
-
- type PickPrimitivesFromAwesome = ConditionalPick<Awesome, Primitive>;
- //=> {name: string; successes: number; failures: bigint}
- ```
-
- @example
- ```
- import {ConditionalPick} from 'type-fest';
-
- interface Example {
- a: string;
- b: string | number;
- c: () => void;
- d: {};
- }
-
- type StringKeysOnly = ConditionalPick<Example, string>;
- //=> {a: string}
- ```
- */
- export type ConditionalPick<Base, Condition> = Pick<
- Base,
- ConditionalKeys<Base, Condition>
- >;
|