For each arbitrary object, e.g.
{
name: string;
age: number;
}
I'd like to have a type e.g.:
type ConsumerFn<T> = (value: T) => void;
type Consumer = {
nameConsumer: ConsumerFn<string>;
ageConsumer: ConsumerFn<number>;
}
How can I make this typing generic? I'm imaging:
type Consumer<T> = {
[`${K in keyof T}Consumer`]: ConsumerFn<K>
}
but that does not work.