Category Topic
TypeScript Basics Introduction
TypeScript Basics Setup
TypeScript Basics Basic Types
TypeScript Basics Special Types
TypeScript Basics Type Annotations
TypeScript Basics Type Inference
TypeScript Basics Arrays
TypeScript Basics Tuples
TypeScript Basics Enums
TypeScript Basics Type Aliases
TypeScript Basics Interfaces
TypeScript Basics Union & Intersection
TypeScript Basics Literal Types
Functions Function Types
Functions Optional Parameters
Functions Default Parameters
Functions Rest Parameters
Functions Function Overloads
Functions Arrow Functions
OOP Classes
OOP Access Modifiers
OOP Readonly
OOP Inheritance
OOP Abstract Classes
OOP Interfaces with Classes
OOP Static Members
Advanced Types Generics
Advanced Types Constraints
Advanced Types Default Generic Types
Advanced Types Keyof Operator
Advanced Types Indexed Access Types
Advanced Types Mapped Types
Advanced Types Conditional Types
Advanced Types Template Literal Types
Advanced Types Recursive Types
Advanced Types Discriminated Unions
Advanced Types Type Guards
Advanced Types Utility Types Overview
Utility Types Partial
Utility Types Required
Utility Types Readonly
Utility Types Pick
Utility Types Omit
Utility Types Record
Utility Types Exclude
Utility Types Extract
Utility Types NonNullable
Utility Types ReturnType
Utility Types Parameters
Modules & Config Modules
Modules & Config tsconfig.json
Modules & Config Declaration Files
Modules & Config Type-Only Imports
Modules & Config Working with JS Libs
Subtopic/Description Status
What is TypeScript, Benefits, Differences from JavaScript
Install Node.js & TypeScript, Compile with tsc, tsconfig.json
`number`, `string`, `boolean`, `null`, `undefined`, etc.
`any`, `unknown`, `never`, `void`
Variable and function annotations
Implicit typing by TypeScript
Typed arrays like `string[]`, `Array<number>`
Tuples like `[string, number]`
String and numeric enums, `const enum`
Define custom types using `type`
Define object shape, optional and readonly fields
Using `|` and `&` for combining types
Specific values as types like `'success'`
Parameter and return types for functions
Use `?` for optional parameters
Set default values in functions
Use `...args` syntax
Multiple function signatures
Typed arrow functions
Class declaration and usage
Use of `public`, `private`, `protected`
Immutable class properties
Extending classes and using `super()`
Abstract classes and methods
Implementing interfaces
Using static methods/properties
Generic functions, classes, interfaces
Limit types with `extends`
Provide default types
Extract keys from types
Access type properties with `T[K]`
Transform types with loops over keys
Conditional logic in types
Build dynamic strings in types
Recursive/self-referencing types
Unions with a common `kind` property
Use `typeof`, `instanceof`, `in`, or custom checks
Overview of TS utility types
Makes all props optional
Makes all props required
Makes all props readonly
Select specific props
Remove specific props
Object with specific keys and values
Remove union members
Get overlapping members
Remove `null`/`undefined`
Get function return type
Get function parameters
Import/export syntax, default and named imports
Compiler options like `strict`, `target`, `module`
Create and use `.d.ts` files
Import only types
Use DefinitelyTyped `@types` packages