
Objetivos
Entender Union (|) e Intersection (&) e quando usar cada um.
Dominar Type Narrowing (estreitamento de tipos) com fluxo de controle.
Criar type guards (nativos e personalizados).
Modelar discriminated unions com checagem exhaustiva.
Aplicar conditional types com extends e infer.
Pré-requisitos: TS básico, tsconfig com strict: true.
Objetivos
Entender os principais utility types do TypeScript.
Ver como eles economizam código repetitivo.
Aprender a criar seus próprios utility types.
Objetivos
Entender como funcionam os tipos condicionais (extends ? :).
Aprender a usar o infer para capturar tipos internos.
Ver exemplos avançados de uso prático.
Objetivos
Entender o que são Mapped Types.
Usar Index Signatures para objetos dinâmicos.
Aprender a combinar os dois para criar tipos mais flexíveis.
Objetivos
Aprender a tipar requisições e respostas de APIs.
Usar fetch e Axios com TypeScript.
Tipar erros e estados de carregamento.
Objetivos
Aprender a tipar props e estados em componentes React.
Usar hooks com TypeScript: useState, useReducer, useContext.
Criar componentes genéricos com props tipadas.
Objetivos
Aprender a configurar um projeto Node.js com TypeScript.
Tipar rotas no Express.
Criar DTOs (Data Transfer Objects) e validar dados de entrada.
Objetivos
Tipagem em Redux/Zustand
Integração com Jest/Testing Library
Uso com Tailwind + TypeScript (intellisense e segurança)
Objetivos
Paths, aliases, strict mode
Otimização para produção
Objetivos
Singleton, Factory, Observer, Strategy
Aplicando SOLID com TypeScript
Objetivos
Usando PNPM/Nx/Turborepo
Tipos compartilhados entre pacotes
Objetivos
Criando mocks e tipando corretamente
Tipagem de testes e2e
Stack:
Express + TypeScript
Zod (validação/DTO)
Prisma + SQLite (ou Postgres) — simples e tipado
JWT + bcrypt
Jest + Supertest (testes)
Swagger (swagger-ui-express) para doc
Objetivos:
Usar discriminated unions em status ("open" | "in_progress" | "resolved").
Usar roles e autorização (ex.: "user" vs "admin").
Rotas aninhadas e validação de relacionamentos.
Nesse projeto vamos usar React + TypeScript + Tailwind + Zustand, consumindo a API de Tickets da Aula 19.
Criação do projeto, instalação, configuração, stores, componentes e UI bacana (login, lista, filtros, criação de ticket, atualização de status para admin e envio de comentário).
Bem-vindo ao curso "Typescript FullStack"! Este curso foi desenvolvido para levar você de um completo iniciante em TypeScript a um desenvolvedor confiante e competente, capaz de criar e manter projetos complexos utilizando esta poderosa linguagem.
O que você vai aprender:
Seção 01 - Do zero ao intermediário
Introdução ao TypeScript:
Compreenda o que é TypeScript e suas vantagens em relação ao JavaScript.
Instale e configure TypeScript em seu ambiente de desenvolvimento.
Escreva e compile seu primeiro programa em TypeScript.
Tipagem Básica e Inferência de Tipos:
Aprenda sobre os tipos primitivos, arrays, tuplas e enums.
Entenda como a inferência de tipos do TypeScript melhora a detecção de erros e a autocompletar.
Explore os tipos any e unknown e seus usos.
Funções e Objetos:
Defina tipos para parâmetros e retornos de funções.
Trabalhe com parâmetros opcionais e valores padrão.
Descubra como criar e usar interfaces para definir a estrutura de objetos.
Classes e Herança:
Crie classes e construtores com TypeScript.
Utilize modificadores de acesso (public, private, protected) para controlar a visibilidade das propriedades e métodos.
Implemente herança para criar classes derivadas e sobrescrever métodos.
Módulos e Tipagem Avançada:
Organize seu código utilizando módulos, importando e exportando funcionalidades.
Trabalhe com Generics para criar componentes reutilizáveis.
Utilize Union Types e Intersection Types para uma tipagem mais precisa.
Aplique Type Guards e Type Assertions para garantir a segurança de tipos em tempo de execução.
Projeto Prático - Todo List
Veja na prática a construção de um projeto simples.
Seção 2: Recursos Avançados do TypeScript
Aula 7: Union, Intersection e Type Narrowing
Tipos condicionais (extends, infer)
Discriminated Unions
Type Guards (typeof, instanceof, in)
Aula 8: Utility Types Avançados
Partial, Required, Pick, Omit, Record, ReturnType
Criando seus próprios Utility Types
Aula 9: Tipos Condicionais e Inferência Avançada
keyof, typeof, infer, as const
Template Literal Types
Aula 10: Mapped Types e Index Signatures
Criando tipos dinâmicos
Aplicações práticas em APIs
Seção 3: Integrações e Padrões Reais
Aula 11: Trabalhando com APIs
Tipagem de respostas de APIs REST
Uso com fetch e Axios
Tipagem de erros
Aula 12: React + TypeScript
Tipagem de props e estados
Hooks com TypeScript (useState, useReducer, useContext)
Componentes genéricos
Aula 13: Node.js + TypeScript
Configuração de projeto backend
Tipagem de Express
DTOs e validação de dados
Aula 14: Integração com Bibliotecas Populares
Tipagem em Redux/Zustand
Integração com Jest/Testing Library
Uso com Tailwind + TypeScript (intellisense e segurança)
Seção 4: Arquitetura e Boas Práticas
Aula 15: Configuração Avançada do tsconfig.json
Paths, aliases, strict mode
Otimização para produção
Aula 16: Padrões de Projeto com TypeScript
Singleton, Factory, Observer, Strategy
Aplicando SOLID com TypeScript
Aula 17: Monorepo e Workspaces com TypeScript
Usando Turborepo
Tipos compartilhados entre pacotes
Aula 18: Testes Tipados
Criando mocks e tipando corretamente
Tipagem de testes e2e
Seção 5: Projetos Avançados
Aula 19: Projeto Prático – API RESTful com Express + TypeScript (Sistema de Tickets)
Aula 20: Projeto Prático – Frontend React + TS com Zustand/Redux (Sistema de Tickets)
Para quem é este curso:
Este curso é ideal para desenvolvedores que já possuem conhecimentos básicos em JavaScript e desejam aprimorar suas habilidades com TypeScript. Se você é um desenvolvedor front-end, back-end ou full-stack, este curso fornecerá as ferramentas necessárias para criar aplicações mais robustas e escaláveis.
O que você precisa:
Conhecimentos básicos em JavaScript.
Um computador com Node.js e npm instalados.
Vontade de aprender e praticar!
Metodologia:
O curso é dividido em aulas teóricas e práticas, com exemplos de código e exercícios para consolidar o aprendizado. Cada aula é estruturada para ser clara e objetiva, garantindo que você compreenda e aplique os conceitos apresentados.
Próximos passos:
Após concluir este curso, você estará preparado para aplicar TypeScript em seus projetos pessoais e profissionais, aproveitando ao máximo os benefícios da tipagem estática. Continue explorando a documentação oficial, participando de comunidades e praticando para se tornar um verdadeiro mestre em TypeScript!