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

113
Vistas
Inicializando objeto cuando se usan estrictos NullChecks en Typescript

Tengo una interfaz llamada IUser y uso strictNullChecks en la configuración de mecanografiado. Quiero usar una variable de IUser en la clase como a continuación:

 class UserAccount { user: IUser; }

El código anterior generará el error:

Property 'user' has no initializer and is not definitely assigned in the constructor.

Puedo arreglar esto con:

 class UserAccount { user: IUser; constructor() { user = new User(); } }

Pero desde una perspectiva de tiempo de ejecución, el user puede configurarse solo después de un tiempo después de que se completa la visualización. Hay una latencia para obtener los datos del user del servidor. La configuración del user se realiza a través de un observable RxJS que funciona solo de forma reactiva.

Qué tipo de inicialización puedo hacer para user para que pueda configurarse solo más tarde. Establecer user en null o undefined puede no ser correcto porque uso strictNullChecks y muestro la intención de que el objeto esté presente desde el principio. Pero un objeto válido para user no puede existir hasta que se complete la llamada al servidor.

*** ACTUALIZAR ****

Este es un ejemplo un poco mejor que el anterior:

 export class AddPersonDialogComponent { selectedPerson1: IPersonForTypeahead; selectedPerson2: IPersonForTypeahead; selectedPerson3: IPersonForTypeahead; ... }

A los 3 objetos de persona selectedPerson se les asignan valores cuando el usuario los selecciona de tres 3 menús desplegables en el cuadro de diálogo. Estas tres propiedades comienzan sin nada, pero si el usuario selecciona personas de un menú desplegable en el cuadro de diálogo, se establecen.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede hacer que su uso de UserAccount sea observable, como este:

 userAccount$: Observable<UserAccount> = this.service.getUser().pipe( map(user => new UserAccount(user)) );

La idea aquí es no construir su cuenta de UserAccount hasta que tenga todos los datos necesarios para hacerlo. Esto va junto con su idea " Pero un objeto válido para el usuario no puede existir hasta que se complete la llamada al servidor ".

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