Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Poderia fazer desta forma também?

Eu troquei o if() por um operador ternário.

constructor(selector: string, escape?:boolean){
        const elemento = document.querySelector(selector);
        elemento ? this.elemento = elemento as HTMLElement : new Error(`Esse elemento e nulo ${elemento}`);
        // if(elemento){
        //     this.elemento = elemento as HTMLElement;
        // }else{
        //     throw new Error(`Esse elemento e nulo ${elemento}`);
        // }
        // if(escape){
        //     this.escape = escape;
        // }
    }
1 resposta
solução!

Oi, Carlos, tudo bem?

O operador ternário é uma forma mais concisa de escrever uma estrutura condicional. Ele é composto por três partes: a condição, o valor retornado se a condição for verdadeira e o valor retornado se a condição for falsa.

No seu caso, o operador ternário ficou assim:

elemento ? this.elemento = elemento as HTMLElement : new Error(`Esse elemento é nulo ${elemento}`);

Se a condição elemento for verdadeira, ou seja, se elemento não for nulo ou indefinido, o valor atribuído à propriedade this.elemento será elemento as HTMLElement. Caso contrário, ou seja, se elemento for nulo ou indefinido, será lançado um erro com a mensagem "Esse elemento é nulo" seguida do valor de elemento.

Essa é uma forma válida de lidar com a possibilidade de elemento ser nulo. No entanto, é importante lembrar que o operador ternário é mais adequado para situações em que você precisa retornar um valor, e não para situações em que você precisa executar uma ação, como lançar um erro.

No seu caso, como você está lançando um erro, talvez seja mais claro e legível utilizar a estrutura if-else tradicional. Assim, você pode manter o código mais explícito e evitar confusões futuras.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software