diff --git a/tests/cases/compiler/infiniteConstraints.ts b/tests/cases/compiler/infiniteConstraints.ts index e914b738efc..a1dcc754260 100644 --- a/tests/cases/compiler/infiniteConstraints.ts +++ b/tests/cases/compiler/infiniteConstraints.ts @@ -36,3 +36,15 @@ const shouldBeError = ensureNoDuplicates({main: value("dup"), alternate: value(" type Cond = T extends number ? number : never; declare function function1}>(): T[keyof T]["foo"]; + +// Repro from #31823 + +export type Prepend = + T extends unknown ? + ((arg: Elm, ...rest: T) => void) extends ((...args: infer T2) => void) ? T2 : + never : + never; +export type ExactExtract = T extends U ? U extends T ? T : never : never; + +type Conv = + { 0: [T]; 1: Prepend>>;}[U extends T ? 0 : 1];