I have a helper function that infers types from the keys of object I pass to it. Helps in autocomplete.
I'm stuck at the point where I wanna add a menu
property to my object, and that menu property is recursive, that is it references the original object it is part of:
Here's my current code:
export type IMenu = { title: string; breakAfter?: boolean; menu?: typeof createMenuConfig; }; /** * This is just a helper function to infer types from the object passed to it */ export const createMenuConfig = <T>(et: { [K in keyof T]: IMenu }) => et;
But this doesn't work.
Error is weird:
Type '{ hello: { title: string; }; }' is not assignable to type '<T>(et: { [K in keyof T]: IMenu; }) => { [K in keyof T]: IMenu; }'. Object literal may only specify known properties, and 'hello' does not exist in type '<T>(et: { [K in keyof T]: IMenu; }) => { [K in keyof T]: IMenu; }'.ts(2322)
How I can I fix the problem?
Top comments (0)