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

147
Vistas
Typescript seleccionando dinámicamente qué importación usar

Si tengo un archivo llamado en_GB.ts

 import { first_name } from '../lib/locales/en'; export const en_GB = { first_name, };

Y luego tengo index.ts que tiene algo como

 import { en_GB } from './locale/en_GB';

Sé que esto hará que el archivo esté disponible para su consumo, pero si dejo que el usuario establezca su configuración regional y se establece en en_GB en una variable de this.self.locale .

¿Hay alguna manera de usar this.self.locale para usar los datos de la importación en_GB ?

este es mi código completo para index.ts

 import { Name } from './lib/name'; import { en_GB } from './locale/en_GB'; interface SelfTypes { locale?: any; locales?: any; localeFallback?: any; name?: any; } export class Deets { greeting: string; public self: SelfTypes = {}; name: any; constructor(options: any, name: string) { this.greeting = name; this.self = { locale: options.locale || {}, locales: options.locales || 'en', localeFallback: options.localeFallback || 'en', }; console.log('this.self'); console.log([this.self.locale]); console.log('this.self'); this.name = new Name(this.self); } greet() { return `Hello, ${this.greeting}`; } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

las importaciones de nivel superior solo se procesan una vez cuando se carga el archivo. Entonces, ¿qué pasa si alguien cambia su configuración regional de alguna manera?


Podría usar una importación dinámica , pero esto funciona de manera diferente.

 const localData = await import(`./locale/${localeName}`)

Tenga en cuenta que devuelve una promesa porque la carga de ese archivo es asíncrona. Entonces esto no irá en las importaciones en la parte superior del archivo.


Sin embargo, dependiendo de cómo esté empaquetando este código, ese enfoque puede causarle problemas. Debido a que no se pueden conocer todas las rutas posibles en el momento de la compilación, el empaquetador puede tener dificultades para saber qué archivos incluir en el paquete.

Por lo tanto, probablemente sea mejor tener una importación que contenga todas las configuraciones regionales, y simplemente puede seleccionar como clave de un objeto:

 import locales from './locale'; const enGBorWhatever = locales[myLocaleName]
about 4 years ago · Juan Pablo Isaza Denunciar
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