2
respostas

parametro PRIVATE construtor da classe

No video 05-Injeção de dependencia, no minuto 2:30 temos o seguinte construtor

constructor(http: HttpClient) { }

Neste momento a instrutora define o parametro http como private conforme exemplo abaixo alegando que desta forma o atributo seria automaticamente declarado como atributo da classe.

constructor(private http: HttpClient) { }

DUVIDA: Não entendi. Para mim isso é só um parametro, o que a instrutora quis dizer como automaticamente é declarado como atributo da classe? Esse parametro vira uma propriedade?

Não ficou claro para mim.

2 respostas

Oi Vanessa, tudo bem?

Essa é uma forma de simplificar o código. Ao invés de declarar a propriedade http na classe, receber um parâmetro no construtor e, no bloco do construtor, atribuir o parâmetro que recebi para a propriedade, assim:

pensamento.service.ts

export class PensamentoService {

 //declarar a propriedade http
 private http: HttpClient;

//receber um parâmetro no construtor
 constructor(http: HttpClient) {

 //atribuir o parâmetro que recebi para a propriedade 
 this.http = http;
}

//métodos da classe

}

Eu utilizo o modificador de acesso private, assim:

pensamento.service.ts

export class PensamentoService {

constructor(private http: HttpClient) { }

//métodos da classe

}

Ao inserir o modificador private no construtor da classe, o TypeScript vai "por debaixo dos panos" criar uma propriedade na sua classe que contenha o mesmo nome do parâmetro passado e vai fazer a atribuição dos valores. Legal, não é mesmo?

Se quiser aprender mais sobre o assunto, nesta aula do curso de TypeScript parte 1: evoluindo seu JavaScript, o mestre Flávio explica com detalhes.

Abraços, bons estudos!

Obrigado pela explicação.