Skip to content

TypeScript Roadmap

  • Roadmap: https://roadmap.sh/typescript

1. Introduction to TypeScript

  • 1.1 TypeScript vs JavaScript
  • 1.2 TS and JS Interoperability
  • 1.3 Installation and Configuration
  • 1.3.1 tsconfig.json
  • 1.3.2 Compiler Options

1.4 Running TypeScript

  • 1.4.1 TS Playground
  • 1.4.2 tsc
  • 1.4.3 ts-node

2. TypeScript Types

2.1 Primitive Types

  • 2.1.1 boolean
  • 2.1.2 number
  • 2.1.3 string
  • 2.1.4 void
  • 2.1.5 undefined
  • 2.1.6 null

2.2 Object Types

  • 2.2.1 Interface
  • 2.2.2 Class
  • 2.2.3 Enum
  • 2.2.4 Array
  • 2.2.5 Tuple
  • 2.2.6 Object

2.3 Top Types

  • 2.3.1 unknown
  • 2.3.2 any

2.4 Bottom Types

  • 2.4.1 never

2.5 Type Inference

2.6 Type Compatibility

2.7 Assertions

  • 2.7.1 as [type]
  • 2.7.2 as any
  • 2.7.3 as const
  • 2.7.4 Non-null Assertion
  • 2.7.5 satisfies keyword

3. Combining Types

  • 3.1 Union Types
  • 3.2 Intersection Types
  • 3.3 Type Aliases
  • 3.4 keyof Operator

4. Type Guards / Narrowing

  • 4.1 instanceof
  • 4.2 typeof
  • 4.3 Equality
  • 4.4 Truthiness
  • 4.5 Type Predicates

5. TypeScript Interfaces

  • 5.1 Types vs Interfaces
  • 5.2 Extending Interfaces
  • 5.3 Interface Declaration
  • 5.4 Hybrid Types

6. TypeScript Functions

  • 6.1 Typing Functions
  • 6.2 Function Overloading

7. Classes

  • 7.1 Constructor Params
  • 7.2 Access Modifiers
  • 7.3 Abstract Classes
  • 7.4 Inheritance vs Polymorphism
  • 7.5 Method Overriding
  • 7.6 Constructor Overloading

8. Generics

  • 8.1 Generic Types
  • 8.2 Generic Constraints

9. Utility Types

  • 9.1 Partial
  • 9.2 Pick
  • 9.3 Omit
  • 9.4 Readonly
  • 9.5 Record
  • 9.6 Exclude
  • 9.7 Extract
  • 9.8 Awaited
  • 9.9 Parameters
  • 9.10 NonNullable
  • 9.11 ReturnType
  • 9.12 InstanceType

10. Decorators

11. Advanced Types

  • 11.1 Mapped Types
  • 11.2 Conditional Types
  • 11.3 Literal Types
  • 11.4 Template Literal Types
  • 11.5 Recursive Types

12. TypeScript Modules

  • 12.1 Namespaces
  • 12.2 Ambient Modules
  • 12.3 External Modules
  • 12.4 Namespace Augmentation
  • 12.5 Global Augmentation

13. Ecosystem

  • 13.1 Formatting
  • 13.2 Linting
  • 13.3 Useful Packages
  • 13.4 Build Tools