TypeScript/tests/cases/compiler/recursiveTupleTypeInference.ts
Anders Hejlsberg e15a9fb3a8
Track tuple type recursion in inferFromObjectTypes (#37479)
* Track recursive tuple types in inferFromObjectTypes

* Add regression test
2020-03-19 14:05:33 -07:00

26 lines
443 B
TypeScript

// @strict: true
// Repro from #37475
export type A = "number" | "null" | A[];
export type F<T> = null extends T
? [F<NonNullable<T>>, "null"]
: T extends number
? "number"
: never;
export type G<T> = { [k in keyof T]: F<T[k]> };
interface K {
b: number | null;
}
const gK: { [key in keyof K]: A } = { b: ["number", "null"] };
function foo<T>(g: G<T>): T {
return {} as any;
}
foo(gK);