We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
IsEqual
1 parent 3dc456d commit df1ad38Copy full SHA for df1ad38
test/typeTestHelpers.ts
@@ -27,6 +27,25 @@ type Equals<T, U> = IsAny<
27
never,
28
IsAny<U, never, [T] extends [U] ? ([U] extends [T] ? any : never) : never>
29
>
30
+
31
+export type IsEqual<A, B> = (<G>() => G extends A ? 1 : 2) extends <
32
+ G
33
+>() => G extends B ? 1 : 2
34
+ ? true
35
+ : false
36
37
+export type IfEquals<
38
+ T,
39
+ U,
40
+ TypeIfEquals = unknown,
41
+ TypeIfNotEquals = never
42
+> = IsEqual<T, U> extends true ? TypeIfEquals : TypeIfNotEquals
43
44
+export declare const exactType: <T, U>(
45
+ draft: T & IfEquals<T, U>,
46
+ expected: U & IfEquals<T, U>
47
+) => IfEquals<T, U>
48
49
export function expectExactType<T>(t: T) {
50
return <U extends Equals<T, U>>(u: U) => {}
51
}
0 commit comments