Интересно, есть ли лучший способ получить все типы вложенных значений объекта. Мой случай, в частности, может быть обобщен на что-то вроде этого:
const myObj = {
group1: {
subGroup11: () => {return {} as const},
subgroup12: () => {return {} as const},
...
},
group2: {
subGroup21: () => {return {} as const},
subGroup22: () => {return {} as const},
...
}
...
}
Все конечные значения являются функциями.
То, что я сейчас делаю, является исчерпывающим, поэтому я получаю все типы из каждого вложенного свойства:
type myType = <ReturnType
typeof myObj.group1.subGroup12 |
typeof myObj.group1.subGroup22 |
...
typeof myObj.group2.subGroup21 |
...
>
Примечания:
Обозначения индекса для имен свойств приведены только для примера.
Группы не обязательно имеют одинаковые свойства.
Обновление ответов:
Извлечение Maciej's * Ответы 1026 * и Леонарда , так как они абсолютно точны. Последний подход проверяет типы объектов глубиной до 2 уровней, в то время как первый работает рекурсивно на любую глубину, также обратите внимание, что последнее решение работает, даже если значения не являются функциями. Спасибо Maciej, Леонард и Jcalz за вклад.