Add tests
This commit is contained in:
parent
1a99ab5b14
commit
1f3af4eab2
1 changed files with 21 additions and 0 deletions
|
@ -74,6 +74,18 @@ type T60 = infer U; // Error
|
|||
type T61<T> = infer A extends infer B ? infer C : infer D; // Error
|
||||
type T62<T> = U extends (infer U)[] ? U : U; // Error
|
||||
|
||||
type T70<T extends string> = { x: T };
|
||||
type T71<T> = T extends T70<infer U> ? T70<U> : never;
|
||||
|
||||
type T72<T extends number> = { y: T };
|
||||
type T73<T> = T extends T72<infer U> ? T70<U> : never; // Error
|
||||
|
||||
type T74<T extends number, U extends string> = { x: T, y: U };
|
||||
type T75<T> = T extends T74<infer U, infer U> ? T70<U> | T72<U> | T74<U, U> : never;
|
||||
|
||||
type T76<T extends T[], U extends T> = { x: T };
|
||||
type T77<T> = T extends T76<infer X, infer Y> ? T76<X, Y>: never;
|
||||
|
||||
// Example from #21496
|
||||
|
||||
type JsonifiedObject<T extends object> = { [K in keyof T]: Jsonified<T[K]> };
|
||||
|
@ -105,3 +117,12 @@ type JsonifiedExample = Jsonified<Example>;
|
|||
declare let ex: JsonifiedExample;
|
||||
const z1: "correct" = ex.customClass;
|
||||
const z2: string = ex.obj.nested.attr;
|
||||
|
||||
// Repros from #21631
|
||||
|
||||
type A1<T, U extends A1<any, any>> = [T, U];
|
||||
type B1<S> = S extends A1<infer T, infer U> ? [T, U] : never;
|
||||
|
||||
type A2<T, U extends void> = [T, U];
|
||||
type B2<S> = S extends A2<infer T, infer U> ? [T, U] : never;
|
||||
type C2<S, U extends void> = S extends A2<infer T, U> ? [T, U] : never;
|
||||
|
|
Loading…
Reference in a new issue