Concepts
Things that need to be understood
- Basic Types ✅
- Variable Declarations ✅
- Interfaces ✅
- Classes ✅
- Functions ✅
- Call Signatures ✅
- Generics ✅
- Enums ✅
- Symbols ✅
- Promises ✅
- Iterators and Generators ✅
in
keyword ✅
- Decorators ✅
- Type Inference ✅
- Advanced Types ✅
- Intersection Types
- Union Types
- String Literal Types
- Numeric Literal Types
- Index types
- Declaration Files ✅
- Modules ✅
- Module Resolution ✅
- Namespaces ✅
- Utility Types ✅
- Type Assertions ✅
- Nonnull Assertions ✅
- Declaration Merging ✅
- Configuring a TypeScript Project ✅
- React ✅
- JSX
- Props
- Components
- Cheatsheet
- Questions
- What is TypeScript?
- How does TypeScript work?
- How is TypeScript different from JavaScript?
- How do you incrementally adopt TypeScript?
- When do you use a Type vs. Interface?
Facts
Things that need to be memorized
- everything in the concepts that can be translated into a fact or something to be memorized via an Anki card
- What is
- a compiler?
- a type system?
- AST?
- Type-Driven-Development?
- static typing vs. dynamic typing?
Procedures
Things that need to be practiced
- everything in the concepts that can be written in a small code example
- Programming TS
- Chapter 2 - general TS exercises
- Chapter 3 - Types exercises
- Chapter 4 - Functions exercises
- Chapter 5 - Classes/Interfaces exercises
- Chapter 6 - Advanced Types exercises
- Chapter 7 - Handling Errors exercises
- Chapter 8 - Async Programming exercises
- Chapter 9 - Frameworks exercises
- Chapter 10 - Namspaces.Modules exercises
- exercism exercises
- executeprogram.com
- Write a compiler