1
resposta

Propriedades exigindo construtor

Ao Tentar replicar o nova-transferencia.component.ts tive o seguinte erro:

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

Para corrigir esse erro, diferentemente do mostrado na aula tive que ou contruir um construtor ou inicializar a varável em sua declaração, sendo que optei pela segunda, segue como ficou o meu código do nova-transferencia.component.ts até a atvidade 05 da aula 03.

`import { Component, EventEmitter, Output } from "@angular/core";

@Component({ selector: 'app-nova-transferencia', templateUrl: './nova-transferencia.component.html', styleUrls: ['./nova-transferencia.component.scss'] }) export class NovaTransferenciaComponent {

@Output() aoTransferir = new EventEmitter();

valor: number = 0; destino: number = 0;

transferir() { console.log('Solicitada nova tranferência'); const valorEmitir = {valor: this.valor, destino: this.destino}; this.aoTransferir.emit(valorEmitir); this.limparCampos(); }

limparCampos() { this.valor = 0; this.destino = 0; } }`

Analizando aqui acredito que isso esteja ocorrendo devido a alguma configuração no tsconfig.json, talvez o strict como true, mas não tenho certeza, alguém saberia como me ajudar para que eu possa utilizar como na aula?

1 resposta

Fala, Thiago! Tudo certo?

É exatamente isso, o seu projeto provavelmente foi criado com configurações de boas práticas (strict). Você pode desativar essa configuração no seu tsconfig.json. Para isso, eu recomendo que você compare a sua versão com a versão do instrutor e veja quais opções são necessárias remover, e você assim deseja fazer.

O strict como true habilita várias configurações além da strictPropertyInitialization que está causando seu problema, você pode desabilitá-la para ter o TypeScript operando como a do instrutor.

Caso você tenha algum problema, o que é possível porque essas configurações são diferentes de versão para versão, talvez essa solução do Stack Overflow resolva seu problema.

Espero que ajude!