1
resposta

Erro nas variáveis valor e destino

Olá, se eu deixar o código dessa forma dá erro de destino.

import { Component } from '@angular/core';

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

  transferir() {
    console.log('Solicitada nova transferência');
    console.log('Valor: ', this.valor);
    console.log('Destino: ', this.destino);
  }
}

Se eu inicializar as variáveis não dá erro.

import { Component } from '@angular/core';

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

  transferir() {
    console.log('Solicitada nova transferência');
    console.log('Valor: ', this.valor);
    console.log('Destino: ', this.destino);
  }
}

Sem inicializar as variáveis o código funciona se eu alterar o strict para false. Se eu não alterar o strict tenho que inicializar as variáveis.

Como faço para manter o struct ativo e não usar as variáveis inicializadas?

1 resposta

Olá Antony, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Normalmente para trabalharmos sem que seja necessário realizar a inicialização de uma propriedade de classe, podemos modificar ou adicionar a propriedade strictPropertyInitialization no arquivo tsconfig.json para false como mostrado abaixo:

"compilerOptions": {
    "strictPropertyInitialization": false,

Mas se você deseja manter o strict ativo e não quer inicializar as variáveis, é possível usar o operador ! para informar ao TypeScript que você tem certeza de que a variável não será nula ou indefinida. Isso é chamado de "non-null assertion operator".

Neste exemplo, o operador ! é usado para informar que as variáveis valor e destino não serão nulas ou indefinidas durante a execução do código. Dessa forma, você deve alterar a declaração das variáveis para:

valor!: number;
destino!: number;

Isso indica que as variáveis podem ser nulas e, portanto, não precisam ser inicializadas. No entanto, é importante lembrar que, se você tentar acessar essas variáveis sem atribuir um valor a elas, pode ocorrer um erro de tempo de execução.

Após a mudança ser realizada, salve o arquivo e reinicie a aplicação com o comando ng serve.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!