Búsqueda de sitios web

reflejando literales de propiedades anidadas en TypeScript


Soy nuevo en TypeScript/JavaScript y estoy tratando de entender algunas cosas. Tengo un tipo definido de la siguiente manera:

declare module "Names" {
 export = Names;
  const Names: {
   readonly name1: string;
   readonly name2: string;
   readonly name3: {
    readonly name3SubName1: string;
...

Estoy intentando extraer los nombres y valores de todas las cadenas del objeto Names en tiempo de ejecución y Names puede tener anidamiento a varios niveles de profundidad.

He podido obtener las propiedades de "nivel superior" iterando a través de los resultados de

Object.keys(Names)

pero dado que el valor de retorno de esa llamada son cadenas, no puedo profundizar más. En este ejemplo me gustaría acceder a name3.name3SubName1. También he probado combinaciones de hasOwnProperty y getOwnProperty, pero no puedo obtener ninguna de las propiedades anidadas. ¿Hay alguna práctica común para "reflejar" objetos de propiedad en objetos TS que pueda manejar anidamientos?