We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Type instantiation is excessively deep and possibly infinite.
recursive conditional types
Playground Link
type Query<T> = { [P in DeepKeys<T>]?: string; }; type Primitive = | null | undefined | string | number | boolean | symbol | bigint; type DeepKeys<T> = T extends Primitive ? never : | (keyof T & string) | { [P in keyof T & string]: T[P] extends (infer Inner)[] ? `${P}.${DeepKeys<Inner>}` : T[P] extends object ? `${P}.${DeepKeys<T[P]>}` : P; }[keyof T & string];
Type instantiation is excessively deep and possibly infinite. at the ${P}.${DeepKeys<T[P]>} snippet.
${P}.${DeepKeys<T[P]>}
No error. Type properly resolves to dot-notation keys of input object.
Bug Report
π Search Terms
recursive conditional types
π Version & Regression Information
β― Playground Link
Playground Link
π» Code
π Actual behavior
Type instantiation is excessively deep and possibly infinite.at the${P}.${DeepKeys<T[P]>}snippet.π Expected behavior
No error. Type properly resolves to dot-notation keys of input object.