O Construtor Protegido no TypeScript
Considere um exemplo de herança entre duas classes: a base classe Veiculo e a classe derivada Carro:
class Veiculo {
constructor() {
}
}
class Carro extends Veiculo {
constructor() {
super();
}
}
Os construtores foram definidos em branco para focarmos no assunto de construtores protegidos.
Considere as seguintes expressoes:
let umVeiculo: Veiculo;
umVeiculo = new Carro();
A variável umVeiculo é declarada com tipo Veiculo. Podemos atribuir um objeto do tipo Carro à essa variàvel porque um Carro é um Veiculo.
Agora vamos ver outra expressão:
let veiculo: Veiculo = new Veiculo();
Nesse caso criamos um objeto usando a base classe Veiculo. Mas há situações em que não queremos permitir a instanciação de objetos do tipo da base classe. Isto é, só queremos permitir a construção de instância de objetos cuja classe é Carro, Moto, etc.
A maneira de resolver o problema é através da palavra chave protected. Basta adicionar à esquerda da assinatura do constructor da base classe:
class Veiculo {
protected constructor() {
}
}
Agora, a seguinte expressão irá causar um erro:
let veiculo: Veiculo = new Veiculo();
Constructor of class 'Veiculo' is protected
and only accessible within the class declaration.
Com a adição de protected antes da assinatura do constructor(), não é mais possível criar objetos baseados diretamente na base classe Veiculo. Em vez disso, o usuário tem criar objetos a partir de classes derivadas de Veiculo. No caso acima, temos que usar new Carro().
Para aprender mais sobre o TypeScript, assista às aulas do NBK Mundo Tech:
Nos vemos lá!
Leave O Construtor Protegido no TypeScript to:
Read more #typescript posts
Best Posts From NBK Mundo Tech
We have not curated any of nbkmundotech's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From NBK Mundo Tech
- Como Usar protected para Acessar Membros Privados de uma Base Classe no TypeScript
- Herança de Classes no TypeScript
- Uma Breve Introdução a Classes no TypeScript
- Como Definir o Tipo de uma Variável que Armazena uma Função no TypeScript
- Como Adicionar o Tipo de Retorno de uma Função em TypeScript
- O Construtor Protegido no TypeScript
- Como Adicionar Anotações de Tipo nos Parâmetros de uma Função em TypeScript
- Como Criar uma Estrutura de Hash Map na Linguagem Golang
- Como Definir Estruturas (Struct) na Linguagem Golang
- Como Definir Ponteiros na Linguagem Golang