type-helpers.ts 430 B

12345678910111213
  1. export type PlainObject<Value = unknown> = Record<string | number | symbol, Value>
  2. export type Prettify<T> = { [K in keyof T]: T[K] } & {}
  3. type Primitive = string | number | bigint | boolean | symbol | null | undefined
  4. export type DeepReadonly<T> = T extends Primitive
  5. ? T
  6. : T extends (infer R)[]
  7. ? ReadonlyArray<DeepReadonly<R>>
  8. : T extends object
  9. ? { readonly [K in keyof T]: DeepReadonly<T[K]> }
  10. : T