source: node_modules/@reduxjs/toolkit/src/query/tsHelpers.ts

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.4 KB
RevLine 
[a762898]1export type Id<T> = { [K in keyof T]: T[K] } & {}
2export type WithRequiredProp<T, K extends keyof T> = Omit<T, K> &
3 Required<Pick<T, K>>
4export type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never
5export function assertCast<T>(v: any): asserts v is T {}
6
7export function safeAssign<T extends object>(
8 target: T,
9 ...args: Array<Partial<NoInfer<T>>>
10): T {
11 return Object.assign(target, ...args)
12}
13
14/**
15 * Convert a Union type `(A|B)` to an intersection type `(A&B)`
16 */
17export type UnionToIntersection<U> = (
18 U extends any ? (k: U) => void : never
19) extends (k: infer I) => void
20 ? I
21 : never
22
23export type NonOptionalKeys<T> = {
24 [K in keyof T]-?: undefined extends T[K] ? never : K
25}[keyof T]
26
27export type HasRequiredProps<T, True, False> =
28 NonOptionalKeys<T> extends never ? False : True
29
30export type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>
31
32export type NoInfer<T> = [T][T extends any ? 0 : never]
33
34export type NonUndefined<T> = T extends undefined ? never : T
35
36export type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T
37
38export type MaybePromise<T> = T | PromiseLike<T>
39
40export type OmitFromUnion<T, K extends keyof T> = T extends any
41 ? Omit<T, K>
42 : never
43
44export type IsAny<T, True, False = never> = true | false extends (
45 T extends never ? true : false
46)
47 ? True
48 : False
49
50export type CastAny<T, CastTo> = IsAny<T, CastTo, T>
Note: See TracBrowser for help on using the repository browser.