Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

215
Vistas
¿TypeScript define un objeto recursivo con un final conocido?

primera vez que publico una pregunta.

Entonces mi problema es que quiero definir un objeto para almacenar cadenas en diferentes idiomas. Esto debe ser flexible, por lo que lo mejor que se me ocurrió es una estructura de objetos anidados, pero quiero que el último objeto sea de un tipo o interfaz específicos.

Al principio probé:

 interface Text { [key: string | number]: ComponentText | Language; } interface Language { [key: string]: string; } text: Text = { title: { en: "English text", sv: "Swedish text", fr: "French Text", es: "Spanish Text", } paragraph: { subText: { en: "English text", sv: "Swedish text", fr: "French Text", es: "Spanish Text", } } } // getCurrLang(s: any) handles getting the correct language string or throws an error when "s" isn't "Language".

Pero recibo errores cuando intento getCurrLang(text['paragraph']['subText']) diciendo:

Argument of type 'string | Text | Language' is not assignable to parameter of type 'Text | Language'. Type 'string' is not assignable to type 'Text | Language'.

Se me ocurrió algo que pensé que resolvería el problema, pero a menos que el valor clave pueda contener lo mismo que "idioma", esto no funciona y no resuelve nada:

 type LangCode = 'en' | 'sv' | 'fr' | 'es'; interface Text { [key: string]: ComponentText | Array<ComponentText>; language?: Language; } type Language = { [key in LangCode]: string; };

¿Hay alguna manera de definir este tipo de estructura o algo mejor?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda