Options
All
  • Public
  • Public/Protected
  • All
Menu

Module types/types

Index

Type aliases

ExtendsNever<T, U, V>: [T] extends [never] ? U : V

Checks if T extends never, if true it returns U, otherwise it returns V.

example
type A = ExtendsNever<never, string, number>; // string
type B = ExtendsNever<{}, string, number>; // number

Type parameters

  • T

  • U

  • V

Infer<T>: T extends PromiseLike<infer U> ? U | Promise<U> : T | Promise<T>

If it's a Promise it returns a union of its resolved value and itself.

Otherwise it returns a union of itself and a Promise of itself.

example
type A = Infer<string>; // string | Promise<string>
type B = Infer<Promise<string>>; // string | Promise<string>

Type parameters

  • T

IsAsync<T, U, B>: B extends true ? U extends true ? Promise<T> : T : U extends PromiseLike<unknown> ? Promise<T> : T

Returns Promise<T> if U is truthy, otherwise returns T.

U can be a Promise, or a boolean if B is true.

example
type A = IsAsync<string, Promise<{}>>; // Promise<string>
type B = IsAsync<string, {}>; // string
type C = IsAsync<string, true, true>; // Promise<string>
type D = IsAsync<string, false, true>; // string

Type parameters

  • T

  • U

  • B = false

IsPromise<T>: T extends PromiseLike<unknown> ? true : false

Returns a boolean of whether T is a Promise or not.

example
type A = IsPromise<Promise<{}>>; // true
type B = IsPromise<{}>; // false

Type parameters

  • T

Persist<T, U>: T extends true ? T : U

Persists T if it's true, otherwise returns U.

example
type A = Persist<false, false>; // false
type B = Persist<false, true>; // true
type C = Persist<true, false>; // true

Type parameters

  • T

  • U: boolean

Generated using TypeDoc