@terascope/types / utility
utility
Interfaces
| Interface | Description |
|---|---|
| AnyObject | A simple object with any values |
| EmptyObject | - |
| ListOfRecursiveArraysOrValues | A simple definitions of array |
| Many | A simple definitions of array |
| RecursiveArray | A simple definitions of array |
Type Aliases
Diff<T, U>
Diff<
T,U> =TextendsU?never:T
Defined in: packages/types/src/utility.ts:79
Remove types from T that are assignable to U
Type Parameters
| Type Parameter |
|---|
T |
U |
Filter<T, U>
Filter<
T,U> =TextendsU?T:never
Defined in: packages/types/src/utility.ts:84
Remove types from T that are NOT assignable to U
Type Parameters
| Type Parameter |
|---|
T |
U |
FilteredResult<T, I, E>
FilteredResult<
T,I,E> ={ [P in keyof T]: P extends I ? T[P] : P extends E ? never : T[P] }
Defined in: packages/types/src/utility.ts:94
Filters the keys of an object (T), by list of included keys (I) and excluded (E)
Type Parameters
| Type Parameter |
|---|
T |
I extends keyof T |
E extends keyof T |
Maybe<T>
Maybe<
T> =T|Nil
Defined in: packages/types/src/utility.ts:46
Type Parameters
| Type Parameter |
|---|
T |
Nil
Nil =
null|undefined
Defined in: packages/types/src/utility.ts:45
Omit<T, K>
Omit<
T,K> =Pick<T,Exclude<keyofT,K>>
Defined in: packages/types/src/utility.ts:7
Omit the properties available to type. Useful for excluding properties from a type
Type Parameters
| Type Parameter |
|---|
T |
K extends keyof T |
Example
`Omit<{ a: number, b: number, c: number }, 'b'|'c'> // => { a: 1 }`
Optional<T, K>
Optional<
T,K> = { [P in keyof T]: P extends K ? NonNullable<T[P]> | undefined : NonNullable<T[P]> }
Defined in: packages/types/src/utility.ts:41
Like Partial but makes certain properties optional
Type Parameters
| Type Parameter |
|---|
T |
K extends keyof T |
Example
`Optional<{ a: number, b: number }, 'b'>`
Override<T1, T2>
Override<
T1,T2> ={ [P in keyof T1]: P extends keyof T1 ? T2[P] : T1[P] }
Defined in: packages/types/src/utility.ts:23
Override specific properties on a type
Type Parameters
| Type Parameter |
|---|
T1 |
T2 extends { [P in keyof T2]: P extends keyof T1 ? T2[P] : never } |
Example
`Override<{ a: number, b: number }, { b: string }>`
Overwrite<T1, T2>
Overwrite<
T1,T2> ={ [P in Exclude<keyof T1, keyof T2>]: T1[P] }&T2
Defined in: packages/types/src/utility.ts:15
Overwrite a simple type with different properties. Useful changing and adding additional properties
Type Parameters
| Type Parameter |
|---|
T1 |
T2 |
Example
`Overwrite<{ a: number, b: number }, { b?: number }>`
PartialDeep<T>
PartialDeep<
T> ={ [P in keyof T]?: PartialDeep<T[P]> }
Defined in: packages/types/src/utility.ts:72
A deep partial object
Type Parameters
| Type Parameter |
|---|
T |
Required<T, K>
Required<
T,K> = { [P in keyof T]: P extends K ? NonNullable<T[P]> : NonNullable<T[P]> | undefined }
Defined in: packages/types/src/utility.ts:32
Like Partial but makes certain properties required
Type Parameters
| Type Parameter |
|---|
T |
K extends keyof T |
Example
`Required<{ a: number, b: number }, 'b'>`
Unpacked<T>
Unpacked<
T> =Textends infer U[] ?U:Textends (...args) => infer U ?U:TextendsPromise<infer U> ?U:T
Defined in: packages/types/src/utility.ts:103
From https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-inference-in-conditional-types
Type Parameters
| Type Parameter |
|---|
T |
Unwrapped<T>
Unwrapped<
T> =NonNullable<T>
Defined in: packages/types/src/utility.ts:47
Type Parameters
| Type Parameter |
|---|
T |
ValueOf<T>
ValueOf<
T> =T[keyofT]
Defined in: packages/types/src/utility.ts:89
Get the types object (the opposite of keyof)
Type Parameters
| Type Parameter |
|---|
T |
WithoutNil<T>
WithoutNil<
T> ={ [P in keyof T]: T[P] extends Nil ? never : T[P] }
Defined in: packages/types/src/utility.ts:52
Without null or undefined properties
Type Parameters
| Type Parameter |
|---|
T |