Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida sobre parâmetros opcionais.

Olá.

Primeiramente, informo que há um possível erro na transcrição da aula 03 - Parâmetros opcionais, no segundo módulo do segundo curso de TypeScript. O último trecho de código informado, que apresenta o uso do operador opcional "?", declara a variável da classe View como _escape, enquanto no construtor ela é passada como escapar.

E agora, a dúvida: o compilador validou meu código somente quando informei o operador "?" na declaração da variável _escapar, não bastando informá-lo somente no construtor, como fora apresentado na aula.

...
export abstract class View<T>
 {
    protected _elemento: JQuery;
    // private _escapar: boolean; ---------- NÃO COMPILA!
    private _escapar?: boolean;

    constructor(seletor: string, escapar?: boolean)
    {
        this._elemento = $(seletor);
        this._escapar = escapar;
    }
...

Saberiam informar o que resultou nesta divergência?

Grato.

1 resposta
solução

Fala ai Alexandre, tudo bem? Vamos lá:

Primeiramente, informo que há um possível erro na transcrição da aula 03 - Parâmetros opcionais

Posso te pedir um favor? Sugira uma melhora na transcrição da mesma e aponte esse problema, ai a gente dá uma olhada por aqui e em caso de aprovação a melhoria é aplicada para todos na plataforma.

E agora, a dúvida: o compilador validou meu código somente quando informei o operador "?" na declaração da variável _escapar, não bastando informá-lo somente no construtor, como fora apresentado na aula.

Sim, isso é necessário pois a propriedade da classe está marcada como obrigatória, porém, o parâmetro no construtor que alimenta ela está como opcional, então existe a possibilidade da propriedade também ser opcional.

Espero ter ajudado.

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