Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não consigo acessar as opções do enum no template através da variável.

Durante a aula o professor acessou as opcões do enum diretamente no template, através da variável options declarada no componente. Porém aqui tá dando esse erro. Alguém sabe o motivo?

error TS2339: Property 'NO' does not exist on type 'YesNoButtonGroupOptions'.

error TS2339: Property 'NO' does not exist on type 'YesNoButtonGroupOptions'.

<div class="button-group">
  <label class="label">{{ label }}</label>
  <button
    class="button button-yes"
    [class.button-pressed]="value === options.YES"
    type="button"
    (click)="activate(options.YES)"
  >
    Yes
  </button>
  <button
    class="button button-no"
    [class.button-pressed]="value === options.NO"
    type="button"
    (click)="activate(options.NO)"
  >
    No
  </button>
</div>
import { Component, Input, OnInit } from '@angular/core';

@Component({
  selector: 'app-yes-no-button-group',
  templateUrl: './yes-no-button-group.component.html',
  styleUrls: ['./yes-no-button-group.component.scss'],
})
export class YesNoButtonGroupComponent implements OnInit {
  @Input() public value: string = null;
  @Input() public label = '';
  public options: YesNoButtonGroupOptions;

  constructor() {}

  ngOnInit(): void {}

  public activate(value: string): void {
    this.value = value;
  }
}

enum YesNoButtonGroupOptions {
  YES = 'yes',
  NO = 'no'
}
2 respostas
solução!

Olá Christian, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

O erro, error TS2339: Property 'NO' does not exist on type 'YesNoButtonGroupOptions' está informando que a propriedade NO não existe no enum YesNoButtonGroupOptions. Este erro está sendo apresentado devido ao enum YesNoButtonGroupOptions não ter sido atribuído a variável options (usando o sinal de igual =) no arquivo yes-no-button-group.component.ts.

Peço que, no arquivo yes-no-button-group.component.ts, localize a propriedade options da classe YesNoButtonGroupComponent e declare-a da seguinte forma:

public options = YesNoButtonGroupOptions;

Após realizar a mudança, salve o arquivo yes-no-button-group.component.ts e reinicie a aplicação executando o comando npm run start no terminal aberto na pasta do projeto e verifique se obterá êxito. Agora, basta dar continuidade na aula lógica de ativação a partir do minuto 7:40.

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!

Opa, perfeito funcionou, obrigado. Ainda estou me acostumando com o JavaScript/TypeScript, tô vindo do Java. Pensei que o YesNoButtonGroupOptions fosse o tipo da variável options, e não o seu valor. Valeu mesmo.