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)