Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

114
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda