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​

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​

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​

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​

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​

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​

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​

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​

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​

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​

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​

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​

Unwrapped<T> = NonNullable<T>

Defined in: packages/types/src/utility.ts:47

Type Parameters​

Type Parameter
T

ValueOf​

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​

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