TypeScript Tutorial
Learn TypeScript step by step through 82 structured lessons. The course starts with essential concepts and progresses toward practical, advanced topics, with explanations, syntax, examples, common mistakes and exercises you can try yourself.
- Level: Beginner to advanced
- Format: 82 free, self-paced lessons
- Best for: Students, career changers and developers refreshing their skills
What You Will Learn
This learning path covers the following areas in curriculum order:
- TypeScript Tutorial
- TypeScript Basic Types
- TypeScript Functions
- TypeScript Interfaces
- TypeScript Type Aliases & Unions
- TypeScript Classes
- TypeScript Generics
- TypeScript Enums
- TypeScript Advanced Types
- TypeScript Utility Types
- TypeScript Modules & Namespaces
- TypeScript Decorators
- TypeScript Error Handling & Debugging
- TypeScript DOM & Async
- TypeScript Reference
Who This Course Is For
This tutorial is suitable for complete beginners as well as learners who already know some programming and want a structured reference. Start from the first lesson if the subject is new to you. Experienced learners can use the curriculum below to jump directly to a specific concept.
How to Use This Tutorial
- Read each lesson in curriculum order and run every example yourself.
- Change the examples to test your understanding instead of only copying them.
- Complete the exercises and review the common-mistake sections before moving on.
- Bookmark this course page so you can return to the complete lesson index.
Course Contents
TypeScript Tutorial
- TypeScript Introduction
- TypeScript Get Started
- TypeScript tsconfig.json
- TypeScript Compiling
- TypeScript Comments
TypeScript Basic Types
- TypeScript Type Annotations
- TypeScript Number String Boolean
- TypeScript Arrays
- TypeScript Tuples
- TypeScript any vs unknown
- TypeScript void and never
- TypeScript Type Inference
TypeScript Functions
- TypeScript Function Types
- TypeScript Optional Default Parameters
- TypeScript Rest Parameters
- TypeScript Function Overloads
- TypeScript The this Parameter
- TypeScript Arrow Functions
TypeScript Interfaces
- TypeScript Interfaces
- TypeScript Optional and Readonly Properties
- TypeScript Function Types in Interfaces
- TypeScript Extending Interfaces
- TypeScript Index Signatures
- TypeScript Interfaces vs Type Aliases
TypeScript Type Aliases & Unions
- TypeScript Type Aliases
- TypeScript Union Types
- TypeScript Intersection Types
- TypeScript Literal Types
- TypeScript Type Narrowing
- TypeScript Type Guards
TypeScript Classes
- TypeScript Classes
- TypeScript public, private, and protected
- TypeScript Readonly Properties
- TypeScript Getters and Setters
- TypeScript Static Members
- TypeScript Abstract Classes
- TypeScript implements Keyword
- TypeScript Parameter Properties
- TypeScript polymorphic this Types
- TypeScript Generic Classes Recap
TypeScript Generics
- TypeScript Generics Introduction
- TypeScript Generic Constraints
- TypeScript Generic Classes
- TypeScript Generic Interfaces
- TypeScript Generic Utility Patterns
TypeScript Enums
TypeScript Advanced Types
- TypeScript Mapped Types
- TypeScript Conditional Types
- TypeScript Template Literal Types
- TypeScript keyof Operator
- TypeScript typeof Type Operator
- TypeScript Indexed Access Types
- TypeScript infer Keyword
TypeScript Utility Types
- TypeScript Partial<T> and Required<T>
- TypeScript Pick<T> and Omit<T>
- TypeScript Record<K,V>
- TypeScript Readonly<T>
- TypeScript Exclude<T> and Extract<T>
- TypeScript ReturnType<T> and Parameters<T>
TypeScript Modules & Namespaces
- TypeScript ES Modules
- TypeScript import type / export type
- TypeScript Namespaces
- TypeScript Module Resolution
- TypeScript Declaration Files (.d.ts)
TypeScript Decorators
- TypeScript Decorators Introduction
- TypeScript Class Decorators
- TypeScript Method Decorators
- TypeScript Property Decorators
TypeScript Error Handling & Debugging
- TypeScript Reading Type-Checking Errors
- TypeScript Type Assertions (as)
- TypeScript Non-Null Assertion (!)
- TypeScript Debugging
TypeScript DOM & Async
- TypeScript Typing the DOM
- TypeScript Typing async/await
- TypeScript Typing Promises
- TypeScript Typing fetch() Responses
- TypeScript Typing Events
TypeScript Reference
Frequently Asked Questions
Is this TypeScript tutorial free?
Yes. The lessons listed on this page are free to read and can be completed at your own pace.
Do I need previous experience?
No previous experience is required for the introductory lessons. Some advanced modules are easier if you first complete the fundamentals in this course.
How should I practise?
Type and run the examples, deliberately change their inputs, predict the result before execution and build a small project after completing each major section.
