Objetivos de Aprendizado
Oi, eu sou o Fernando e este material/curso/série foi feito pensando exatamente no que eu gostaria de ter dominado há uns anos atrás — e no que vejo fazer muita diferença hoje em dia nos projetos reais, nas entrevistas e na vida de times que entregam produto de verdade.
Ao final deste percurso, eu quero que você saia daqui se sentindo muito mais seguro e poderoso para lidar com TypeScript no nível sênior, escrever código limpo que escala e adotar práticas profissionais que realmente impressionam (e facilitam a vida) em empresas sérias.
O que pretendo dominar de forma prática e profunda no final dessa semana?:
Entender e aplicar com naturalidade os recursos mais poderosos do sistema de tipos:
Generics avançados (constraints, keyof, infer, distributive conditional types),
Conditional Types em profundidade (inferência condicional, tipos utilitários customizados,
tipo “é isso ou aquilo”),
Mapped Types e Template Literal Types para criar tipos dinâmicos,
transformações de objetos e utilitários extremamente expressivos,
Criação de tipos utilitários
próprios que imitam os do próprio TypeScript (Partial, Required, Pick, Omit, etc.)
Design Patterns, vou implementar e questionar cada um na prática
Vou pegar os padrões clássicos, implementar em TypeScript moderno (com tipos fortes), testar em cenários
reais e decidir sozinho quando eles valem a pena ou quando são só firula.
Meu plano
Factory (Method e Abstract Factory) – criar fábricas tipadas e flexíveis
Singleton – testar várias abordagens seguras em TS/JS e escolher a que eu mais confio
Observer / Pub-Sub – fazer na mão, comparar com EventEmitter e ver se vale usar libs modernas
E o principal: vou me perguntar sempre “isso resolve um problema de verdade ou estou forçando padrão por
moda?”
Princípios SOLID – vou aplicar, quebrar e consertar na prática
Chega de ler teoria bonita. Eu quero viver cada letra no código que eu escrevo sozinho:
Single Responsibility: refatorar códigos meus antigos e ver onde a responsabilidade vaza
Open/Closed: criar sistemas extensíveis sem tocar no código existente
Liskov Substitution: caçar exemplos reais onde herança quebra o princípio (e eu já caí nisso)
Interface Segregation: aplicar em APIs e componentes React/Next.js que eu crio
Dependency Inversion: praticar injeção de dependência manual e testar com containers leves
Vou debater comigo mesmo onde o SOLID ajuda de verdade e onde ele vira dogma que atrapalha a
produtividade.
Quer ver um exemplo completo? O repositório do seu-cli está aberto: