Tutorial Detalhado de TypeScript
Bem-vindo a este tutorial completo de TypeScript! Aqui, você aprenderá desde os conceitos básicos até as funcionalidades mais avançadas para começar a desenvolver aplicações robustas e seguras. O TypeScript é um superset do JavaScript que adiciona tipagem estática, permitindo que você capture erros durante o desenvolvimento, em vez de em tempo de execução.
O que é TypeScript?
Em sua essência, o TypeScript é o JavaScript com superpoderes. Ele foi criado pela Microsoft para resolver alguns dos problemas mais comuns do JavaScript, como a falta de tipagem. Quando você escreve código em TypeScript, ele é compilado para JavaScript puro, o que significa que pode ser executado em qualquer navegador ou ambiente Node.js.
Passo 1: Instalação e Configuração
Antes de começarmos a codar, você precisa ter o Node.js instalado na sua máquina, pois o compilador do TypeScript (tsc) é um pacote do npm.
1.1. Instalar o Node.js
Se você ainda não tem, baixe e instale o Node.js do site oficial. A instalação do Node.js já inclui o npm (Node Package Manager).
1.2. Instalar o TypeScript
Com o Node.js e o npm instalados, abra seu terminal ou prompt de comando e execute o seguinte comando para instalar o TypeScript globalmente na sua máquina:
npm install -g typescript
Para verificar se a instalação foi bem-sucedida, digite:
tsc --version
Você deverá ver a versão do compilador instalada.
Passo 2: Seu Primeiro Projeto TypeScript
Vamos criar um projeto simples para entender o fluxo de trabalho básico.
2.1. Criar o Projeto
Crie uma nova pasta para o seu projeto e navegue até ela no terminal:
mkdir meu-projeto-ts
cd meu-projeto-ts
2.2. Criar um Arquivo TypeScript
Crie um arquivo chamado app.ts e adicione o seguinte código:
// Definindo uma função com tipos
function saudar(nome: string) {
console.log(`Olá, ${nome}! Bem-vindo ao TypeScript.`);
}
let usuario = "Alice";
saudar(usuario);
// Erro de tipagem (comentado)
// let numero = 123;
// saudar(numero); // Isso causaria um erro em tempo de compilação
Observação: O : string após a variável nome é a anotação de tipo. Ela informa ao TypeScript que o parâmetro nome deve ser uma string. Tentar passar um número resultaria em um erro antes de você executar o código.
2.3. Compilar o Código
Agora, use o compilador do TypeScript (tsc) para converter o arquivo app.ts em JavaScript:
tsc app.ts
Após a execução, um novo arquivo chamado app.js será criado na mesma pasta. Veja como ele será:
// Código gerado em JavaScript
function saudar(nome) {
console.log("Ol\u00E1, " + nome + "! Bem-vindo ao TypeScript.");
}
var usuario = "Alice";
saudar(usuario);
// Erro de tipagem (comentado)
// let numero = 123;
// saudar(numero); // Isso causaria um erro em tempo de compilação
Note que o JavaScript gerado é um código simples e compatível com navegadores antigos, sem as anotações de tipo.
2.4. Executar o Código
Agora, execute o arquivo JavaScript com Node.js para ver o resultado:
node app.js
A saída será:
Olá, Alice! Bem-vindo ao TypeScript.
Passo 3: Principais Tipos de Dados
O TypeScript oferece uma variedade de tipos para garantir a segurança do seu código. Aqui estão os mais comuns:
// Tipos primitivos
let isDone: boolean = false;
let idade: number = 30;
let nomeCompleto: string = "João Silva";
// Array
let listaDeNumeros: number[] = [1, 2, 3]; // Ou Array
// Tuple (tupla)
// Um array com um número fixo de elementos e tipos específicos
let pessoa: [string, number];
pessoa = ["Ana", 25]; // OK
// pessoa = [25, "Ana"]; // Erro
// Enum
// Conjunto de constantes nomeadas
enum Cores {Vermelho, Verde, Azul};
let corEscolhida: Cores = Cores.Verde;
console.log(corEscolhida); // Saída: 1 (índice do enum)
// Any (evite, mas é útil em alguns casos)
// Desativa a verificação de tipo. Use com cautela!
let naoDefinido: any = "posso ser qualquer coisa";
naoDefinido = 10;
// Void (para funções que não retornam nada)
function logar(): void {
console.log("Esta função não retorna nada.");
}
// Null e Undefined
let u: undefined = undefined;
let n: null = null;
Passo 4: Interfaces e Classes
Interfaces e classes são essenciais para estruturar seu código de forma orientada a objetos.
4.1. Interfaces
As interfaces definem a "forma" de um objeto. Elas garantem que um objeto terá certas propriedades com tipos específicos.
interface Usuario {
nome: string;
idade: number;
email?: string; // O '?' torna a propriedade opcional
}
function exibirUsuario(usuario: Usuario) {
console.log(`Nome: ${usuario.nome}, Idade: ${usuario.idade}`);
if (usuario.email) {
console.log(`Email: ${usuario.email}`);
}
}
let novoUsuario = { nome: "Maria", idade: 28 };
exibirUsuario(novoUsuario);
4.2. Classes
As classes em TypeScript são muito parecidas com as de outras linguagens orientadas a objetos, com a adição de modificadores de acesso (public, private, protected).
class Animal {
private nome: string;
constructor(nome: string) {
this.nome = nome;
}
public fazerBarulho(): string {
return "Fazendo barulho...";
}
}
class Cachorro extends Animal {
constructor(nome: string) {
super(nome);
}
// Sobrescrevendo o método da classe pai
public fazerBarulho(): string {
return "Au Au!";
}
}
let meuCachorro = new Cachorro("Rex");
console.log(meuCachorro.fazerBarulho());
Passo 5: Configurando o Projeto com tsconfig.json
Em projetos reais, é inviável compilar cada arquivo individualmente. O arquivo tsconfig.json é a espinha dorsal da configuração do seu projeto TypeScript.
Para gerar um arquivo tsconfig.json padrão no seu projeto, execute o seguinte comando no terminal:
tsc --init
Isso criará um arquivo tsconfig.json com várias opções comentadas. Algumas opções importantes que você pode configurar são:
"target": "es5": A versão do ECMAScript para a qual o seu código será compilado."outDir": "./dist": O diretório de saída para os arquivos JavaScript compilados."rootDir": "./src": O diretório raiz dos seus arquivos TypeScript."strict": true: Habilita todas as opções de verificação de tipo rigorosas. Recomendado para projetos novos.
Depois de configurar o tsconfig.json, você pode compilar todo o seu projeto simplesmente executando tsc no terminal.
// Compila todos os arquivos .ts do projeto
tsc
Onde Ir a Partir Daqui?
Parabéns! Você já tem uma base sólida para começar a usar TypeScript. Para aprofundar seus conhecimentos, explore estes tópicos:
- Genéricos (Generics): Para criar componentes reutilizáveis que funcionam com uma variedade de tipos, como arrays ou funções.
- Módulos: Como importar e exportar código usando a sintaxe
importeexport. - Decoradores: Para adicionar metadados a classes, métodos ou propriedades (muito usado em frameworks como Angular).
- TypeScript com Frameworks: Integrar TypeScript com React, Angular ou Vue.js para construir aplicações de grande escala.
O melhor lugar para continuar aprendendo é a documentação oficial do TypeScript. Boa sorte na sua jornada de aprendizado!

