Herança de Classes no TypeScript
A palavra-chave class, introduzida no ECMAScript 2015, nos permite definir uma classe em JavaScript. O TypeScript também tem suporte ao paradigma. Um dos elementos da programação orientada à objetos é a herança de classes para reutilizar o código. No JavaScript tradicional, a herança é feita através de protótipos. Já com a palavra-chave class, podemos fazer a herança através da palavra-chave extends.
Vamos supor que temos uma base classe chamada Individuo. Vamos simplificar o nosso exemplo e considerar mais duas classes: um individuo poderia ser um estudante ou um funcionário de uma empresa. Por causa disso, podemos usar herança e definir que:
Um Estudante é um Individuo
Um Funcionario é um Individuo
Então a base classe é Individuo e as classes derivadas são Estudante e Funcionario. O primeiro é também chamado de superclasse e os segundos são subclasses.
Vamos aprender com um código. Primeiro definimos a base classe:
class Individuo {
nome: string;
constructor(oNome: string) {
this.nome = oNome;
}
}
Agora, para herdarmos da base classe, usamos a palavra-chave extends logo após o nome dela. Depois segue com o nome da classe derivada:
class Estudante extends Individuo {
}
class Funcionario extends Individuo {
}
Não definimos nenhum membro para as classes derivadas, mas ambas irão herdar a propriedade nome e o constructor de Individuo.
Podemos então adicionar propriedades e métodos específicos para cada subclasse. Por exemplo, um Estudante tem uma disciplina de estudo e um funcionário tem um salario.
class Estudante extends Individuo {
disciplina: string;
constructor(oNome: string, aDisciplina: string) {
super(oNome);
this.disciplina = aDisciplina;
}
}
class Funcionario extends Individuo {
salario: number;
constructor(oNome: string, oSalario: number) {
super(oNome);
this.salario = oSalario;
}
}
No exemplo acima, precisamos adicionar um novo constructor à cada classe derivada para poder iniciar as propriedades específicas de cada classe. Note que podemos reutilizar o código do constructor da base classe Individuo com a chamada de super.
É importante ressaltar que super deve ser chamado para iniciar os valores compartilhados através da base classe e que não se deve referenciar this. no corpo do constructor antes da chamada de super().
Vamos testar nossas classes:
let fJoao: Funcionario = new Funcionario("Joao", 123);
let eAna: Estudante = new Estudante("Ana", "Arquitetura");
Note que também podemos criar uma variável do tipo da base classe e ainda armazenar tanto um Estudante como um Funcionario:
let individuo: Individuo = fJoao;
individuo = eAna;
O código acima funciona porque um Funcionario é um Individuo e um Estudante também é um Individuo.
Para aprender mais sobre o TypeScript, assista às aulas do NBK Mundo Tech:
Nos vemos lá!
Leave Herança de Classes 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