Fala ai galerinha, tudo tranquilo com vocês?
Hoje vamos falar do TypeScript, basicamente é um superconjunto sintático estrito de JavaScript, ou seja, um conjunto de ferramentas e formas mais eficientes de escrever código JavaScript, adicionando recursos que não estão presentes de maneira nativa na linguagem.
O TypeScript começou a ser desenvolvido pela Microsoft em 2012, com o objetivo de adicionar recursos e ferramentas que não estão presentes nativamente na linguagem (ou que seriam muito mais complexos de serem implementados), como tipagem estática (ou seja, os tipos das variáveis são definidos explicitamente no código) e orientação a objetos.
Por isso, ele não é usualmente considerado como uma nova linguagem de programação, mas sim como um superconjunto de JavaScript, pois o código é “transformado” (no termo técnico: transcompilado) em JavaScript “puro” antes de ser executado.
Um arquivo TypeScript geralmente tem a extensão “.ts”. Por, no fundo, ainda ser JavaScript, qualquer código nativo da linguagem pode ser adicionado em um arquivo desse formato, e programas escritos em JavaScript também podem ser considerados programas TypeScript válidos. Há, também, suporte a várias bibliotecas JavaScript populares, como Angular, Vue.js, D3.js, entre outras.
Sites e aplicativos criados com TypeScript podem ser executados tanto no lado do cliente (diretamente no navegador do usuário, por exemplo) quanto no lado do servidor (com Node.js). O próprio compilador TypeScript padrão foi escrito em TypeScript e transcompilado para JavaScript.
Veja abaixo um exemplo de código TypeScript envolvendo encapsulamento, um conceito de orientação a abjetos que dá visibilidade e acessibilidade a elementos internos de uma classe. Nesse caso, a declaração de uma variável de saldo, do tipo “number”, é acessível pelo método “Saldo()”.
private _saldo: number;
get Saldo(): number { return this._saldo; }
Ao aplicarmos esse superconjunto, podemos melhorar o suporte a programação orientada a objetos, já que turbinamos o Javascript com várias possibilidades que a linguagem pura não dispõe.
Em sua forma simples, o JS não nos permite a utilização de interfaces de forma clara, por exemplo, além de apresentar uma tipagem fraca, o que prejudica o desenvolvimento em escala de aplicações.
O Typescript visa contornar esses problemas adicionando uma série de funcionalidades, que se perderão, uma vez que o código final se torna Javascript quando transpilado posteriormente.
Porém, durante o desenvolvimento, aquele que programa poderá contar com maiores possibilidades e uma sintaxe mais simples, clara e suportada por todos os editores de códigos modernos.
Como o Typescript é um modificação do JS, qualquer arquivo que tenha sido escrito com essa extensão, .js, pode ser utilizado dentro do TS diretamente, uma vez que ele aceita códigos JS por padrão. Isso é muito positivo, pois possibilita a atualização de sistemas construídos em Javascript.
Ao utilizarmos o Typescript, temos a possibilidade de aplicar aplicar a tipagem estática à programação juntamente com interfaces em um sistema construído unicamente com Javascript; ou seja, podemos turbinar as nossas aplicações. Entre esses conceitos estão os que listamos abaixo.
O conceito de encapsulamento pode ser entendido como uma forma de estruturação de código para que determinados blocos tenham acesso a pontos específicos para o ambiente externo. Assim, há visibilidade e acessibilidade dos elementos internos de uma classe.
Ao aplicarmos o encapsulamento, podemos definir quais são os atributos de uma casse que poderão ser visíveis aos usuários externos ou que estarão expostos para uma interface pública do sistema.
Quem trabalha com linguagens como Java, PHP e C# já está acostumado a declarar atributos privados dentro de suas classes, garantindo esse controle. Vamos a um exemplo em Typescript:
private _saldo: number;
O princípio da herança também é muito conhecido e, com base nele, uma classe filha pode herdar, ou não, os comportamentos e características de uma classe pai, sem que seja necessário redefinir todas as funções novamente.
A palavra reservada utilizada para realizar a herança em Typscript é “extends” assim como na linguagem Java. É preciso declarar a nova função estendendo-a de outra, conforme o exemplo abaixo:
module Escola {
class Pessoa { ...código aqui.. }
class Aluno extends Pessoa { ...código aqui.. }
class Professor extends Pessoa { ...código aqui.. }
}
No exemplo acima, temos um módulo escola, no qual todos são pessoas e compartilham determinados atributos, como o CPF. Contudo, existem características específicas, que são únicas de alunos e de professores. O TS facilita a escrita desse código baseado em herança, que será compilado posteriormente em JS puro.
A abstração pode ser considerada a capacidade de destacar apenas algumas características de elementos do mundo real, e é algo muito utilizado na programação orientada a objetos.
Essas características são agrupadas nas chamadas classes, que representam partes de um elemento e seus atributos para a solução de um determinado problema.
Temos ainda as chamadas “classes abstratas”, que não têm uma representação no mundo real, mas realizam determinadas funções necessárias ao sistema. São as chamadas interfaces.
export module Escola
{
export interface Nota { AlterarNota(nota: number); }
export class Aluno implements Nota {
AlterarNota(nota: number) { }
}
}
Por fim, temos o polimorfismo, que permite que sejam utilizados objetos dentro da programação de formas diferenciadas, de acordo com a situação. Ou seja, em um sentido reverso à herança, podemos assumir que uma classe pai possa usar atributos de qualquer de suas classes filhas.
São várias as vantagens de adotar o Typescript como uma ferramenta de desenvolvimento para quem já trabalha com JS. Uma das maiores é descobrir erros durante a sua implementação, uma vez que é possível utilizar o Intellisense da IDE, permitindo visualizar pontos de melhoria e problemas de compilação.
O principal foco do Typescript é trazer a tipagem estática para o Javascript, juntando também alguns features para facilitar a aplicação dos conceitos de OOP também. Porém, é por meio da tipagem que podemos construir aplicações muito mais seguras e manuteníveis, melhorando a produtividade.
Podemos considerar o Typescript como um potencializador da linguagem Javascript. Ele permite que grandes sistemas complexos sejam construídos com essa linguagem sem nenhum empecilho e sem que ela deixe a desejar diante de outras linguagens de back-end, como PHP ou Java.
Espero que tenham gostado de mais uma publicação relacionada a programação!
Até a próxima, valeu!
Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!