Skip to main content

@terascope/types / utility

utility

Interfaces

InterfaceDescription
AnyObjectA simple object with any values
EmptyObject-
ListOfRecursiveArraysOrValuesA simple definitions of array
ManyA simple definitions of array
RecursiveArrayA simple definitions of array

Type Aliases

Diff<T, U>

Diff<T, U>: T extends U ? 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>: T extends U ? 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<keyof T, 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>: T extends infer U[] ? U : T extends (...args) => infer U ? U : T extends Promise<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[keyof T]

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