helper.d.ts 646 B

1234567891011121314151617181920212223242526
  1. type PlainType<T = any> = Record<string, T>
  2. type ExtractRecordValue<T> = T extends Record<any, infer V> ? V : never
  3. type ExtractArrayValue<T> = T extends Array<infer V> ? V : never
  4. type Without<T, U> = {
  5. [P in Exclude<keyof T, keyof U>]?: never
  6. }
  7. type OnlyOne<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U
  8. type Mutable<T> = {
  9. -readonly [K in keyof T]: T[K]
  10. }
  11. type AssignKeys<U, Y = object> = {
  12. [K in keyof U]: K extends keyof Y ? Y[K] : U[K]
  13. } & Y
  14. type Optional<U, K extends keyof U> = {
  15. [P in K]?: U[K]
  16. } & Omit<U, K>
  17. type PartRequire<U, K extends keyof U> = {
  18. [P in K]-?: U[K]
  19. } & Omit<U, K>