Introduction to TypeScript
Why TypeScript? (advantages over JavaScript)
Installation guide from A to Z
Setting up TypeScript compiler (tsc)
Creating your first TypeScript project
Understanding tsconfig.json
Working with basic types (string, number, boolean, null, undefined, any, unknown, never)
Type inference vs explicit types
Arrays and Tuples in TypeScript
Enums (numeric, string, heterogeneous)
Union types
Intersection types
Type aliases vs Interfaces
Optional and readonly properties
Functions in TypeScript (parameters and return types)
Function overloading
Arrow functions with types
Type assertion and Type narrowing
Type guards (typeof, instanceof, custom type guards)
Classes and OOP basics in TypeScript
Constructors, fields, and methods
Access modifiers (public, private, protected)
Inheritance and polymorphism
Abstract classes
Interfaces and implementation in classes
Generics introduction
Generic functions and classes
Constraints in generics
Utility types (Partial, Required, Pick, Omit, Record)
Mapped and conditional types
Indexed access types and keyof operator
Working with modules and namespaces
Declaration files (.d.ts) introduction
Working with third-party libraries and DefinitelyTyped
Decorators (class, method, property, parameter)
Mixins in TypeScript
Error handling with types
Strict mode options (strict, noImplicitAny, strictNullChecks, etc.)
Advanced configuration of tsconfig.json
Using TypeScript with Node.js
Building a REST API with Express + TypeScript
TypeScript with databases (TypeORM / Prisma)
Authentication and Authorization in TypeScript APIs
Middleware typing in Express
Using TypeScript with GraphQL (Apollo Server)
Using TypeScript with React
Typing Props and State in React
Typing Hooks (useState, useReducer, useRef, useContext)
Typing events in React (forms, buttons, inputs)
Context API with TypeScript
Higher Order Components and Render Props with TypeScript
Handling external libraries in React without types
Advanced React patterns with TypeScript
TypeScript with Next.js (SSR + SSG typing)
ESLint + Prettier setup with TypeScript
Unit testing with Jest + ts-jest
Integration testing with Supertest + TypeScript
End-to-End testing with Playwright + TypeScript
CI/CD pipeline for TypeScript projects
Monorepos with TypeScript (Nx / Turborepo)
Writing clean and maintainable TypeScript code
Refactoring JavaScript projects to TypeScript (step by step)
Best practices in large TypeScript applications
Design patterns in TypeScript (Repository, Singleton, Dependency Injection, Observer, Factory)
Domain-Driven Design (DDD) with TypeScript
Event-driven architecture with TypeScript
Microservices with TypeScript
Publishing and consuming TypeScript packages (npm)
