Uma Breve Introdução a Classes no TypeScript

A programação orientada à objetos no JavaScript é originalmente realizada através de funções e herança prototípica. Com o advento do ECMAScript 2015, coloquialmente chamado de “ES6”, foi adicionada a palavra chave class, agora nos permitindo criar classes de maneira similar à linguagens como C++, C#, e Java.
O TypeScript também tem suporte a declaração de classes através da palavra chave class. Vamos ver um exemplo:
1class Forma {
2 nome: string;
3
4 constructor(oNome: string) {
5 this.nome = oNome;
6 }
7}O exemplo acima define uma classe chamada de Forma, que tem como atributo a propriedade nome. A função constructor() é chamada quando você construir um objeto baseado na classe e atribui um nome à forma.
O acesso de membros da classe é por padrão public, se nada for definido explicitamente. Entao podemos instanciar um objeto e acessar a propriedade nome diretamente:
let retang: Forma = new Forma("Retangulo");
console.log(`O nome da forma é ${retang.nome}`);A expressão acima primeiro declara uma variável do tipo Forma e atribui ao seu valor uma nova instância de Forma, com o nome Retangulo. Note que a string Retangulo é passada como argumento para o constructor, que por si atribui o nome do objeto this.nome.
O console.log imprime uma mensagem que inclui acesso ao nome da Forma diretamente, sem passar por um método getter.
Vamos adicionar duas propriedades à classe Forma: largura e altura. Ambas devem ser do tipo number.
1class Forma {
2 nome: string;
3 largura: number;
4 altura: number;
5
6 constructor(oNome: string, aLargura: number, aAltura: number) {
7 this.nome = oNome;
8 this.largura = aLargura;
9 this.altura = aAltura;
10 }
11}Agora podemos fazer um método para calcular a área da forma:
1class Forma {
2 // ...
3 public obterArea(): number {
4 return this.largura * this.altura;
5 }
6}Como já mencionado, o acesso dos membros de uma classe em TypeScript é public por padrão, mas o exemplo acima o define explicitamente. Acesso público significa que o membro pode ser referenciado por fora da classe. Isso é o oposto do acesso privado (private), em que é proibido a referência do membro de fora da classe ou instância.
O método não tem nenhum parâmetro porque os valores necessários para calcular a área já são parte dos atributos do objeto.
O tipo do valor de retorno do método obterArea é explicitamente definido como number, mas poderia ser omitido e o compilador deduziria o tipo ao analizar a expressão de retorno.
Vamos testar o método obterArea:
let retang: Forma = new Forma("Retangulo", 3, 4);
console.log(`A area do retângulo é ${retang.obterArea()}`);Saída:
A area do retângulo é 12Para não expor os atributos largura e altura do objeto ao mundo de fora, que tal redefinir essas propriedades com acesso privado?
1class Forma {
2 // ...
3 private largura: number;
4 private altura: number;
5 // ...
6}Dessa maneira, se o usuário do objeto tentar referenciar retang.largura, o compilador irá emitir um erro dizendo que o acesso não é permitido devido a propriedade ser privada:
Property 'largura' is private and only accessible within class 'Forma'.Para aprender mais sobre o TypeScript, assista às aulas do NBK Mundo Tech:
https://www.youtube.com/watch?v=czp3QV55v1k&list=PLUbb2i4BuuzBcH1iS242xjztUwMI4erNb
Nos vemos lá!
Leia a seguir

O Que É a Linguagem de Programação Rust? Um Guia Simples da Linguagem Rápida Que Não Deixa Você Travar
Um guia simples e sem jargões sobre o Rust, a linguagem tão rápida quanto o C que impede famílias inteiras de erros de memória antes de o programa rodar. Entenda a ideia de posse, por que gigantes da tecnologia o adotam e onde ele é usado.

O Que É a Linguagem de Programação Go? Um Guia Simples da Linguagem da Nuvem
Um guia simples e sem jargões sobre o Go, a linguagem simples e rápida que o Google criou para a nuvem. Entenda o que são goroutines, por que um programa Go é um arquivo só e como o Go passou a mover o Docker, o Kubernetes e boa parte da internet.

O Que É a Linguagem de Programação Ruby? Um Guia Simples da Linguagem Feita para a Felicidade
Um guia simples e sem jargões sobre o Ruby, a linguagem de programação feita para deixar os programadores felizes. Entenda por que o código Ruby parece inglês, como o Ruby on Rails move sites como GitHub e Shopify, e onde o Ruby brilha.
Comentários
Seja gentil e específico. Comentários com links de contas novas aparecem depois da análise de um moderador.