Guia Typescript
Guia Typescript
guia-typescript
Sumário:
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 1/24
17/07/2024, 11:27 guia-typescript
Sumário:
Introdução
Importante:
Sistema CPV
1. Introdução ao TypeScript
O que é TypeScript?
Por que usar TypeScript?
Um breve exemplo de código
2. Configurando um Ambiente TypeScript
Instalação do Node.js e NPM
Instalando o TypeScript
Configurando o compilador TypeScript
Exemplo de Projeto TypeScript
Utilizando o ts-node-dev
Instalação
Configuração
Executando o Projeto
3. Tipos Básicos em TypeScript
Tipos Primitivos
Exercícios para Praticar
4. Arrays em TypeScript
Definindo Arrays
Operações Comuns em Arrays
Métodos Avançados de Arrays
Exercícios para Praticar
5. Funções em TypeScript
Definindo Funções
Parâmetros Opcionais e Padrões
Tipos Avançados em Funções
Exercícios para Praticar
6. Interfaces e Tipos Customizados
Definindo Interfaces
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 2/24
17/07/2024, 11:27 guia-typescript
Introdução
Olá, muito obrigado por ter acessado esse guia, ele foi pensado e desenvolvido com
muito carinho com o objetivo de ajudar você que está começando na programação.
Com esse guia você vai ser capaz de dar os seus primeiros passos práticos no mundo
da programação com TypeScript.
Não esquece de me seguir no Instagram @umporcentoprog que lá eu trago
conteúdo educacional de programação todos os dias, e é por lá que eu solto esses
guias gratuitos, como esse que você está lendo!
Importante:
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 3/24
17/07/2024, 11:27 guia-typescript
Para tirar melhor proveito desse guia, é bom que você já tenha uma boa base de
JavaScript básico, caso você não tenha, acesse agora mesmo o meu Guia Gratuito
de JavaScript e pratique lá antes de continuar com seus estudos em TypeScript.
Sistema CPV
O sistema CPV é um sistema de 3 passos para aprender programação e aplicar os
conceitos aprendidos. É o método que eu usei quando estava começando na
programação e que uso até hoje para aprender novas tecnologias.
CPV Significa:
Conceito → Aprender um conceito, a teoria;
Pratica → Praticar o conceito aprendido com exercícios ou projetos práticos;
Vitrine → Expor o que você aprendeu para o mundo, colocar em um repositório do
GitHub, fazer um post no Linkedin, enfim, faz uma vitrine do seu conhecimento.
Recomendo fortemente que você aplique esse sistema para tirar o melhor proveito
desse guia.
1. Introdução ao TypeScript
O que é TypeScript?
TypeScript é uma linguagem de programação desenvolvida pela Microsoft que
adiciona tipos estáticos ao JavaScript. Isso significa que, enquanto o JavaScript é
dinâmico e mais flexível, o TypeScript ajuda a capturar erros antes mesmo da
execução do código, durante a fase de desenvolvimento!
Com TypeScript, você pode escrever aplicações mais robustas e com menos bugs. É
especialmente útil em projetos grandes, onde a complexidade e o número de
desenvolvedores envolvidos tornam o controle de qualidade mais desafiador.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 4/24
17/07/2024, 11:27 guia-typescript
TypeScript:
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 5/24
17/07/2024, 11:27 guia-typescript
Antes de instalar o TypeScript, você precisa ter o Node.js e o NPM (Node Package
Manager) instalados no seu sistema. O Node.js é um runtime de JavaScript que
permite executar código JS no seu computador, e o NPM é o gerenciador de pacotes
que usaremos para instalar o TypeScript.
1. Baixe e instale o Node.js: Visite nodejs.org e baixe a versão recomendada para a
maioria dos usuários.
2. Verifique a instalação: Abra seu terminal e digite os seguintes comandos para
verificar se o Node.js e o NPM foram instalados corretamente:
Você deverá ver as versões instaladas exibidas no terminal.
node -v npm -v
Instalando o TypeScript
Com o Node.js e o NPM prontos, instalar o TypeScript é um processo simples:
Este comando instala o TypeScript globalmente em seu sistema, permitindo que você
o use em qualquer projeto.
npm init -y
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 6/24
17/07/2024, 11:27 guia-typescript
tsc --init
tsc index.ts
node index.js
Utilizando o ts-node-dev
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 7/24
17/07/2024, 11:27 guia-typescript
Instalação
Para começar a usar o ts-node-dev , primeiro você precisa instalá-lo. Como é uma
ferramenta de desenvolvimento, é uma boa prática instalá-la como uma dependência
de desenvolvimento em seu projeto:
Configuração
Com o ts-node-dev instalado, você pode configurá-lo para executar seu projeto.
Adicione um script no seu package.json para facilitar a execução:
Executando o Projeto
Para rodar seu projeto com ts-node-dev , basta usar o comando:
Isso inicia seu aplicativo e monitora qualquer alteração nos arquivos TypeScript,
reiniciando automaticamente o servidor sempre que você salvar um arquivo. Isso é
incrivelmente útil durante o desenvolvimento, pois você vê as alterações em tempo
real sem a necessidade de reiniciar manualmente o servidor.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 8/24
17/07/2024, 11:27 guia-typescript
Agora que seu ambiente está configurado, você está pronto para mergulhar mais
fundo no TypeScript! No próximo capítulo, vamos discutir os tipos básicos e como
usá-los para melhorar seu código.
Tipos Primitivos
1. Boolean
• O tipo mais simples, boolean , representa um valor lógico: verdadeiro ou
falso.
2. Number
• Assim como no JavaScript, todos os números em TypeScript são valores de
ponto flutuante. TypeScript fornece suporte tanto para números inteiros
quanto para valores de ponto flutuante.
3. String
• Para textos e caracteres, use o tipo . Você pode usar aspas simples ('
string
'), aspas duplas (" ") ou crases ( ) para strings que precisam de interpolação
ou múltiplas linhas.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 9/24
17/07/2024, 11:27 guia-typescript
4. Array
• Arrays podem ser escritos de duas formas: usando o tipo dos elementos
seguido de [] ou usando um tipo de array genérico.
5. Tuple
• Os tuples permitem expressar um array com um número fixo de elementos
cujos tipos são conhecidos, mas não precisam ser iguais.
6. Enum
• Um enumpermite definir um conjunto de constantes nomeadas. O
TypeScript suporta numéricos e baseados em string.
7. Any
• Use para capturar valores cujo tipo não é importante e sobre os quais
any
você não quer realizar checagem de tipo. Ideal para migração de JavaScript
para TypeScript.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 10/24
17/07/2024, 11:27 guia-typescript
4. Arrays em TypeScript
Arrays em TypeScript são utilizados para armazenar múltiplos valores em uma única
variável. Com a adição de tipos, o TypeScript permite que você defina o tipo dos
elementos dentro do array, garantindo maior controle e segurança sobre os dados
que você manipula.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 11/24
17/07/2024, 11:27 guia-typescript
Definindo Arrays
1. Array com Tipo Único
• Você pode declarar um array onde todos os elementos são do mesmo tipo
usando a notação de colchetes após o tipo de dado.
numeros.push(6);
• Removendo Elementos
◦ Use .pop() para remover o último elemento de um array.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 12/24
17/07/2024, 11:27 guia-typescript
• Acessando Elementos
◦ Acesse um elemento específico pelo seu índice.
• Transformar Elementos
◦ O método .map() permite transformar cada elemento de um array e
retornar um novo array com os elementos transformados.
• Reduzindo um Array
◦ O método .reduce() aplica uma função que resulta em um único valor
resumido de todo o array.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 13/24
17/07/2024, 11:27 guia-typescript
5. Funções em TypeScript
Funções são blocos fundamentais no desenvolvimento de software, permitindo
reutilizar código e criar estruturas modulares. TypeScript adiciona uma camada de
segurança adicional com a tipagem de parâmetros e valores de retorno, ajudando a
evitar muitos erros comuns.
Definindo Funções
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 14/24
17/07/2024, 11:27 guia-typescript
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 15/24
17/07/2024, 11:27 guia-typescript
• Tipos de Função
◦ Você pode criar um tipo específico para uma função, que define a assinatura
da função.
• Overloads de Função
◦ TypeScript permite definir múltiplas assinaturas para uma função, conhecidas
como overloads, permitindo que a função aceite diferentes tipos de
parâmetros e retorne diferentes tipos de valores.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 16/24
17/07/2024, 11:27 guia-typescript
Definindo Interfaces
1. Interface para Parâmetros de Função
• Defina uma interface que especifique a estrutura esperada para os
parâmetros de uma função.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 17/24
17/07/2024, 11:27 guia-typescript
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 18/24
17/07/2024, 11:27 guia-typescript
Classes em TypeScript
1. Definindo e Instanciando Classes
• Classes são usadas como moldes para criar objetos. Aqui está um exemplo
de como definir e instanciar uma classe.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 19/24
17/07/2024, 11:27 guia-typescript
2. Herança e Instanciação
• Demonstração de como uma classe pode herdar de outra e como instanciar
a classe derivada.
Polimorfismo
• Polimorfismo com Métodos Sobrescritos
◦ Como classes derivadas podem sobrescrever métodos de suas classes base.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 20/24
17/07/2024, 11:27 guia-typescript
Este capítulo fornece uma visão geral sólida sobre como utilizar conceitos de
orientação a objetos em TypeScript para construir aplicações mais robustas e
organizadas. No próximo tópico, vamos explorar Generics, outro recurso poderoso
do TypeScript.
8. Generics em TypeScript
Generics são uma das características mais poderosas em linguagens de tipagem
estática como TypeScript. Eles permitem que você crie componentes que são
capazes de trabalhar com qualquer tipo de dado, mantendo a segurança dos tipos.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 21/24
17/07/2024, 11:27 guia-typescript
Generics em Classes
• Classes com Generics
◦ Classes também podem ser definidas com generics, permitindo que você
crie estruturas de dados dinâmicas que trabalham com qualquer tipo de
dado.
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 22/24
17/07/2024, 11:27 guia-typescript
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 23/24
17/07/2024, 11:27 guia-typescript
2. Intersection Types
• Intersection types combinam múltiplos tipos em um só, juntando suas
propriedades.
Tipos Condicionais
• Conditional Types
◦ Tipos condicionais permitem a criação de tipos que dependem de condições.
Utilitários Comuns
T S i tf ái f õ tilitá i j d i l ti d
https://umporcentoprogramador.notion.site/guia-typescript-b7ac20e20d294780935e944315ef239d 24/24