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