synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
26 lines (25 loc) • 629 B
TypeScript
/**
* Makes fields for a type optional.
* For example:
*
* type FooBarBaz = {
* foo: string
* bar: string
* baz: string
* }
*
* To make only the 'baz' property optional
* type OptionalBaz = Optional<FooBarBaz, 'baz'>
* Would result in :
* OptionalBaz === {
* foo: string
* bar: string
* baz?: string // this is now optional
* }
*
* To make multiple properties optional, use a String Literal union:
* type OptionalBarBaz = Optional<FooBarBaz, 'bar' | 'baz'>
*
* @see https://stackoverflow.com/a/54178819
*/
export declare type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;