У меня есть объект, где каждое значение свойства представляет собой тип функции. Каждый получает один и тот же параметр и возвращает объект другого типа.
const initialObj = {
a: (c: number) => ({ c }),
b: (c: number) => ({ d: c }),
}
Я хочу создать еще один объект из этого. Там, где ключи совпадают, а значения являются возвращаемыми объектами.
{
a: { c: 4 };
b: { d: 4 };
}
Я попытался напечатать это так:
{ [Key in typeof keyof initialObj]: ReturnType<typeof initialObj[Key]> }
С этим я получаю такой тип:
{
a: { c: number } | { d: number };
b: { c: number } | { d: number };
}
То, что я хочу получить в конце, выглядит так:
{
a: { c: number };
b: { d: number };
}
Возможно ли это? Если да, то как мне его напечатать?