Here is the scenario:
type EventDefinitions<TEventPayload extends object> = {
[eventName: string]: TEventPayload;
};
type X = keyof EventDefinitions<object>;
Can you explain why the type of X is number | string
in this context? I anticipated it to be solely string since I specified that it should be a string. Am I misunderstanding something?