CodeBlanks Logo Icon CodeBlanks
Free 4 levels

TypeScript

Learn TypeScript 5 from the type system to generics, decorators and the compiler API across all levels.

The TypeScript course covers all levels from primitive types to advanced generics, mapped and conditional types, decorators, modules and the compiler API.

  • 270 lessons
  • 19 h 12 min
  • 8 projects

No account needed, you can start right away. To save your progress, create a free account

Levels

The TypeScript course goes from zero to expert in four levels. Start at any level you like.
Not sure of your level? Take the placement test
Beginner

Learn TypeScript fundamentals: setup, primitive types, arrays, tuples, enums, functions, interfaces and strict mode.

  • TypeScript intro and setup
  • Primitive types
  • Arrays
  • Tuples
89 lessons · 6 h 19 min See lessons →
Intermediate

Classes, access modifiers, generics, utility types, mapped and conditional types, decorators and modules.

  • Classes
  • Access modifiers
  • Readonly properties
  • Generics
89 lessons · 6 h 19 min See lessons →
Advanced

Advanced generics, template literal types, recursive and branded types, discriminated unions, type guards and assertion functions.

  • Advanced generics
  • Template literal types
  • Recursive types
  • Variance
57 lessons · 4 h 1 min See lessons →
Expert

Compiler API, transformers, custom type checkers, tsconfig deep dive, project references, emit and performance.

  • Compiler API
  • Transformer
  • Custom type checker
  • tsconfig deep dive
35 lessons · 2 h 33 min See lessons →

Projects you will build

At every level you combine what you learned into a real page.

How does it work?

Short explanation

Each lesson explains one concept in a few short cards; no long videos or walls of text.

Try it right away

Multiple choice, fill-in-the-blank and matching exercises lock in what you just learned.

Write it yourself

You write real code in the in-browser editor; it is checked instantly and you see the result live.

Curriculum

62 groups · 270 lessons · 19 h 12 min

Learn TypeScript fundamentals: setup, primitive types, arrays, tuples, enums, functions, interfaces and strict mode.

1
TypeScript intro and setup
5 lessons · 20 min
  1. 1 What is TypeScript? Learn that TypeScript is a typed superset of JavaScript. 4 min
  2. 2 Why TypeScript? Learn how type safety catches errors early. 4 min
  3. 3 tsc compiler Learn to convert .ts files to .js with the TypeScript compiler tsc. 4 min
  4. 4 tsconfig basics Learn compiler options with tsconfig.json. 4 min
  5. 5 Summary - TypeScript basics Write your first TypeScript program by combining setup, tsc, and tsconfig. 4 min
2
Primitive types
5 lessons · 20 min
  1. 1 string type Learn to define text with the string type. 4 min
  2. 2 number type Learn to define numbers with the number type. 4 min
  3. 3 boolean type Learn boolean for logical values. 4 min
  4. 4 let and const Learn the difference between let and const and type inference. 4 min
  5. 5 Summary - Primitive types Write a profile card by combining string, number, and boolean types. 4 min
3
Arrays
5 lessons · 20 min
  1. 1 Array type Learn to define arrays and specify their types. 4 min
  2. 2 Array methods Learn array methods like push, pop, and map. 4 min
  3. 3 readonly arrays Learn the immutability of readonly arrays. 4 min
  4. 4 Multidimensional arrays Learn to define nested arrays. 4 min
  5. 5 Summary - Arrays Write a notes app by combining array types and methods. 4 min
4
Tuples
4 lessons · 16 min
  1. 1 What is a tuple? Learn tuple, fixed-length ordered arrays. 4 min
  2. 2 Tuple usage Learn to create tuples and access their elements. 4 min
  3. 3 readonly tuple Learn immutable tuples with readonly tuple. 4 min
  4. 4 Summary - Tuple Write labeled coordinate data using tuples. 4 min
5
Enums
5 lessons · 20 min
  1. 1 Numeric enum Learn to define numeric enums. 4 min
  2. 2 String enum Learn more readable values with string enums. 4 min
  3. 3 const enum Learn compile-time optimization with const enum. 4 min
  4. 4 Enum members Learn enum member access and reverse mapping. 4 min
  5. 5 Summary - Enum Write an order status tracker using enums. 4 min
6
any, unknown, never
5 lessons · 20 min
  1. 1 any type Learn how the any type turns off type checking. 4 min
  2. 2 unknown type Learn safe type checking with unknown. 4 min
  3. 3 never type Learn unreachable code with never. 4 min
  4. 4 void type Learn functions that do not return a value with void. 4 min
  5. 5 Summary - Special types Write a program comparing any, unknown, never, and void types. 4 min
7
Type annotation
4 lessons · 16 min
  1. 1 Variable annotation Learn to give explicit types to variables. 4 min
  2. 2 Parameter annotation Learn to type function parameters. 4 min
  3. 3 Return type annotation Learn to explicitly write function return types. 4 min
  4. 4 Summary - Type annotation Write a calculation function with explicit types. 4 min
8
Type inference
4 lessons · 16 min
  1. 1 Basic inference Learn how type inference works. 4 min
  2. 2 Inference with const Learn literal type inference with const. 4 min
  3. 3 Best common type Learn the best common type in arrays. 4 min
  4. 4 Summary - Type inference Write a variable tracker by combining inference rules. 4 min
9
Objects
4 lessons · 16 min
  1. 1 Object type Learn to explicitly write object types. 4 min
  2. 2 Optional properties Learn optional properties with ?. 4 min
  3. 3 Readonly properties Learn immutable properties with readonly. 4 min
  4. 4 Summary - Objects Write a user card by combining object types. 4 min
10
Functions
5 lessons · 20 min
  1. 1 Function declaration Learn to define functions with types. 4 min
  2. 2 Optional and default params Learn optional and default parameters. 4 min
  3. 3 Rest params Learn to take variable arguments with rest parameters. 4 min
  4. 4 Function overloads Learn function overloading. 4 min
  5. 5 Summary - Functions Write a store calculation function with types. 4 min
11
Arrow functions
4 lessons · 16 min
  1. 1 Arrow syntax Learn to write arrow functions and their types. 4 min
  2. 2 this with arrow Learn the this context in arrow functions. 4 min
  3. 3 Arrow type Learn to use arrow functions as types. 4 min
  4. 4 Summary - Arrow functions Write a list filtering program with arrow functions. 4 min
12
Interfaces
4 lessons · 16 min
  1. 1 What is an interface? Learn to define object shapes with Interface. 4 min
  2. 2 Property types Learn to type interface properties. 4 min
  3. 3 Interface vs type alias Learn the difference between Interface and type alias. 4 min
  4. 4 Summary - Interfaces Write a product catalog model with interfaces. 4 min
13
Type alias
4 lessons · 16 min
  1. 1 What is a type alias? Learn type naming with the type keyword. 4 min
  2. 2 Composition with alias Learn to create new types by combining aliases. 4 min
  3. 3 Alias vs interface Learn the distinction between type alias and interface. 4 min
  4. 4 Summary - Type alias Write a configuration type with aliases. 4 min
14
Union and intersection
4 lessons · 16 min
  1. 1 Union types Learn union, specifying one of several types. 4 min
  2. 2 Intersection types Learn intersection, combining multiple types. 4 min
  3. 3 Literal types Learn literal types, fixed value types. 4 min
  4. 4 Summary - Union & intersection Write a payment model by combining union and intersection. 4 min
15
null and undefined
4 lessons · 16 min
  1. 1 null vs undefined Learn the difference between null and undefined. 4 min
  2. 2 Optional chaining Learn safe access with the ? operator. 4 min
  3. 3 Nullish coalescing Learn default values with the ?? operator. 4 min
  4. 4 Summary - null & undefined Write a user profile program with safe access. 4 min
16
Strict mode
4 lessons · 16 min
  1. 1 strict: true Learn the strict flag in tsconfig. 4 min
  2. 2 strictNullChecks Learn the option that enforces null safety. 4 min
  3. 3 strictFunctionTypes Learn strict function types. 4 min
  4. 4 Summary - Strict mode Write a safe account program by enabling strict options. 4 min
17
Project: Shopping cartProject
5 lessons · 25 min
  1. 1 Cart design Design cart and product types and write the skeleton. 5 min
  2. 2 Add product Learn to add products and update quantities. 5 min
  3. 3 Total calculation Learn to calculate the cart total. 5 min
  4. 4 Apply discount Learn percentage discount logic. 5 min
  5. 5 Integration Build the working cart by combining all parts. 5 min
18
Project: Todo CLIProject
5 lessons · 25 min
  1. 1 Task model Design task and status types. 5 min
  2. 2 Add and list Write task add and list functions. 5 min
  3. 3 Completion Learn to mark a task as completed. 5 min
  4. 4 Filtering Learn to filter tasks by status. 5 min
  5. 5 Integration Build the working Todo CLI by combining all parts. 5 min
19
Project: LibraryProject
5 lessons · 25 min
  1. 1 Book model Design book and member types. 5 min
  2. 2 Add and search Write book add and search functions. 5 min
  3. 3 Borrow Write the book borrow logic. 5 min
  4. 4 Return Write the book return logic. 5 min
  5. 5 Integration Build the working library by combining all parts. 5 min
20
Beginner finalFinal
4 lessons · 24 min
  1. 1 Challenge 1: Types Solve a task combining basic types and interfaces. 6 min
  2. 2 Challenge 2: Functions Build a calculation by writing type-safe functions. 6 min
  3. 3 Challenge 3: Unions Design a model using union and intersection. 6 min
  4. 4 Challenge 4: Mini app Solve a task testing the full beginner level. 6 min

Classes, access modifiers, generics, utility types, mapped and conditional types, decorators and modules.

1
Classes
5 lessons · 20 min
  1. 1 Class basics Learn to define classes in TypeScript. 4 min
  2. 2 Constructor and fields Learn class fields with the constructor method. 4 min
  3. 3 Methods Learn to add methods to classes. 4 min
  4. 4 Static members Learn class-level members with static. 4 min
  5. 5 Summary - Classes Write a bank account model with classes. 4 min
2
Access modifiers
5 lessons · 20 min
  1. 1 public Learn public members with the public modifier. 4 min
  2. 2 private Learn class-internal members with private. 4 min
  3. 3 protected Learn subclass access with protected. 4 min
  4. 4 Parameter properties Learn the shorthand in constructor parameters. 4 min
  5. 5 Summary - Access modifiers Write a user class encapsulated with modifiers. 4 min
3
Readonly properties
4 lessons · 16 min
  1. 1 readonly fields Learn to make class fields constant with readonly. 4 min
  2. 2 Readonly parameter Learn to use readonly in constructor parameters. 4 min
  3. 3 Readonly vs const Learn the difference between readonly and const. 4 min
  4. 4 Summary - Readonly Write an immutable configuration with readonly fields. 4 min
4
Generics
5 lessons · 20 min
  1. 1 What is a generic? Learn functions with type parameters. 4 min
  2. 2 Generic functions Learn to define generic functions. 4 min
  3. 3 Generic classes Learn type-safe collections with generic classes. 4 min
  4. 4 Multiple type parameters Learn to take multiple type parameters. 4 min
  5. 5 Summary - Generics Write a type-safe store class with generics. 4 min
5
Generic constraints
4 lessons · 16 min
  1. 1 extends constraint Learn to constrain a type parameter with extends. 4 min
  2. 2 keyof constraint Learn the property name constraint with keyof. 4 min
  3. 3 Default type parameter Learn to give a default value to a type parameter. 4 min
  4. 4 Summary - Generic constraints Write a property picker with constrained generics. 4 min
6
Utility types
4 lessons · 16 min
  1. 1 Partial Learn to make all properties optional with Partial. 4 min
  2. 2 Required and Pick Learn Required for required and Pick for selecting. 4 min
  3. 3 Omit and Record Learn Omit for removing and Record for mapping. 4 min
  4. 4 Summary - Utility types Write a flexible form type with utility types. 4 min
7
keyof and typeof
4 lessons · 16 min
  1. 1 keyof operator Learn the keys of a type with keyof. 4 min
  2. 2 typeof operator Learn the type of a value with typeof. 4 min
  3. 3 Indexing with keyof Learn safe property access with keyof. 4 min
  4. 4 Summary - keyof and typeof Write a safe settings manager with the operators. 4 min
8
Mapped types
4 lessons · 16 min
  1. 1 What is a mapped type? Learn mapped types that iterate over types. 4 min
  2. 2 Readonly mapped type Learn to make all properties readonly with a mapped type. 4 min
  3. 3 Optional mapped type Learn to make properties optional with a mapped type. 4 min
  4. 4 Summary - Mapped types Write your own utility type with mapped types. 4 min
9
Conditional types
4 lessons · 16 min
  1. 1 What is a conditional type? Learn conditional types that branch by type. 4 min
  2. 2 Distributive conditional Learn distribution and unions. 4 min
  3. 3 Logic with conditional Learn to build type-level logic with conditional types. 4 min
  4. 4 Summary - Conditional types Write a type filter with conditional types. 4 min
10
infer
4 lessons · 16 min
  1. 1 infer keyword Learn to extract types with infer. 4 min
  2. 2 Extracting from Promise Learn the value type of a Promise with infer. 4 min
  3. 3 Array element type Learn to extract the element type of an array with infer. 4 min
  4. 4 Summary - infer Write your own Awaited and ElementOf types with infer. 4 min
11
Decorators
5 lessons · 20 min
  1. 1 What is a decorator? Learn what class decorators are. 4 min
  2. 2 Method decorator Learn to write method decorators. 4 min
  3. 3 Property decorator Learn property decorators. 4 min
  4. 4 Decorator factories Learn parameterized decorators. 4 min
  5. 5 Summary - Decorators Write a logging layer with decorators. 4 min
12
Modules
5 lessons · 20 min
  1. 1 export and import Learn ES module export and import. 4 min
  2. 2 Default export Learn default exports. 4 min
  3. 3 Re-export Learn to re-export modules. 4 min
  4. 4 Type-only import Learn type-only exports. 4 min
  5. 5 Summary - Modules Write a multi-file accounting package with modules. 4 min
13
Namespaces
4 lessons · 16 min
  1. 1 What is a namespace? Learn global scope grouping with namespace. 4 min
  2. 2 Nested namespace Learn nested namespaces. 4 min
  3. 3 Namespace vs module Learn the difference between namespace and module. 4 min
  4. 4 Summary - Namespaces Write a legacy-style library header with namespaces. 4 min
14
Declaration files
4 lessons · 16 min
  1. 1 What is .d.ts? Learn what declaration files are. 4 min
  2. 2 Ambient module Learn to declare ambient modules. 4 min
  3. 3 Triple-slash directive Learn triple-slash directives. 4 min
  4. 4 Summary - Declaration files Add types to a JS library by writing a .d.ts file. 4 min
15
Advanced classes
4 lessons · 16 min
  1. 1 abstract class Learn abstract classes. 4 min
  2. 2 implements Learn to implement an interface with a class. 4 min
  3. 3 Get and set Learn getter and setter methods. 4 min
  4. 4 Summary - Advanced classes Write a shape hierarchy with abstract class and interface. 4 min
16
Type assertion
5 lessons · 20 min
  1. 1 as keyword Learn type assertion with as. 4 min
  2. 2 angle bracket syntax Learn the <type> syntax and its limits. 4 min
  3. 3 Type assertion vs casting Learn the difference between assertion and real casting. 4 min
  4. 4 Casting from unknown Learn to safely cast from unknown. 4 min
  5. 5 Summary - Type assertion Write a program that safely parses an API response with assertion. 4 min
17
Project: Library packageProject
5 lessons · 25 min
  1. 1 Package design Set up a multi-file library skeleton. 5 min
  2. 2 Exporting types Export public types from a barrel file. 5 min
  3. 3 Generic helpers Add generic helper functions. 5 min
  4. 4 Declaration file Write a .d.ts declaration for the package. 5 min
  5. 5 Integration Build the working library by combining all parts. 5 min
18
Project: Quiz appProject
5 lessons · 25 min
  1. 1 Question model Design question, option, and answer types. 5 min
  2. 2 Question pool Write the question pool as a module. 5 min
  3. 3 Answer check Write the answer validation function. 5 min
  4. 4 Score calculation Write the score calculation logic. 5 min
  5. 5 Integration Build the working quiz by combining all parts. 5 min
19
Project: Weather appProject
5 lessons · 25 min
  1. 1 Weather model Design weather data types. 5 min
  2. 2 API response type Write the API response type with interface. 5 min
  3. 3 Data transform Transform the API response into the internal model. 5 min
  4. 4 Display Write the function that formats the weather. 5 min
  5. 5 Integration Build the working app by combining all parts. 5 min
20
Intermediate finalFinal
4 lessons · 24 min
  1. 1 Challenge 1: Classes Solve a task combining classes and access modifiers. 6 min
  2. 2 Challenge 2: Generics Solve a task using generics and constraints. 6 min
  3. 3 Challenge 3: Type systems Solve a task combining mapped, conditional, and infer. 6 min
  4. 4 Challenge 4: Mini app Solve a task testing the full intermediate level. 6 min

Advanced generics, template literal types, recursive and branded types, discriminated unions, type guards and assertion functions.

1
Advanced generics
4 lessons · 16 min
  1. 1 Variadic tuples Learn variadic tuple types. 4 min
  2. 2 Tuple inference Learn tuple inference in generics. 4 min
  3. 3 Recursive generic types Learn self-referencing generic types. 4 min
  4. 4 Summary - Advanced generics Write a concat helper with variadic tuples. 4 min
2
Template literal types
4 lessons · 16 min
  1. 1 What is a template literal? Learn to build template strings at the type level. 4 min
  2. 2 Combination with union Learn to produce string sets with unions. 4 min
  3. 3 Generation with mapped Learn to generate string types with mapped types. 4 min
  4. 4 Summary - Template literal types Write a CSS class name generator with template literals. 4 min
3
Recursive types
4 lessons · 16 min
  1. 1 What is a recursive type? Learn self-referencing types. 4 min
  2. 2 Tree types Learn to express tree structures as types. 4 min
  3. 3 Deep partial Learn the deep Partial pattern. 4 min
  4. 4 Summary - Recursive types Write a JSON tree model with recursive types. 4 min
4
Variance
4 lessons · 16 min
  1. 1 Covariance Learn the covariance rule for functions. 4 min
  2. 2 Contravariance Learn the contravariance rule for parameters. 4 min
  3. 3 Bivariance and strict Learn the difference between bivariance and strictFunctionTypes. 4 min
  4. 4 Summary - Variance Write a program comparing variance rules. 4 min
5
Branded types
4 lessons · 16 min
  1. 1 What is a branded type? Learn nominal-like typing with branded types. 4 min
  2. 2 Brand definition Learn to define a brand with intersection. 4 min
  3. 3 Using brands Learn to use branded types in functions. 4 min
  4. 4 Summary - Branded types Write unmixable UserId and OrderId with branded types. 4 min
6
Phantom types
4 lessons · 16 min
  1. 1 What is a phantom type? Learn safety with phantom type parameters. 4 min
  2. 2 State Encoding Learn state machines with phantom types. 4 min
  3. 3 API with phantom Learn safe API design with phantom types. 4 min
  4. 4 Summary - Phantom types Write a state-safe order flow with phantom types. 4 min
7
Type narrowing
4 lessons · 16 min
  1. 1 typeof narrowing Learn narrowing with typeof. 4 min
  2. 2 in operator Learn narrowing by property with the in operator. 4 min
  3. 3 instanceof Learn class narrowing with instanceof. 4 min
  4. 4 Summary - Type narrowing Write a mixed data parser with narrowing. 4 min
8
Discriminated unions
4 lessons · 16 min
  1. 1 What is a discriminated union? Learn tagged unions. 4 min
  2. 2 Literal discriminant Learn to discriminate with literal fields. 4 min
  3. 3 Pattern matching Learn branching with discriminated unions. 4 min
  4. 4 Summary - Discriminated unions Write an event handler with discriminated unions. 4 min
9
Exhaustive check
4 lessons · 16 min
  1. 1 Exhaustive with never Learn exhaustive checking with never. 4 min
  2. 2 Switch exhaustive Learn exhaustive checking in switches. 4 min
  3. 3 Compile-time safety Learn to guarantee compile-time safety. 4 min
  4. 4 Summary - Exhaustive check Write a safe state manager with exhaustive check. 4 min
10
Type guards
4 lessons · 16 min
  1. 1 User-defined type guard Learn to write custom type guards with is. 4 min
  2. 2 Assertion function Learn assertion functions with asserts. 4 min
  3. 3 Primitives guard Learn to write guards for primitive types. 4 min
  4. 4 Summary - Type guards Write a safe data validation layer with type guards. 4 min
11
Assertion functions
4 lessons · 16 min
  1. 1 asserts is Learn the asserts x is T syntax. 4 min
  2. 2 asserts defined Learn null checking with asserts x is defined. 4 min
  3. 3 Assertion vs throw Learn the difference between assertion and throwing. 4 min
  4. 4 Summary - Assertion functions Write a safe request handler with assertion functions. 4 min
12
Strict null and definite assignment
4 lessons · 16 min
  1. 1 strictNullChecks deep Learn the deep behavior of strictNullChecks. 4 min
  2. 2 Definite assignment Learn initialization with definite assignment. 4 min
  3. 3 Non-null assertion Learn non-null assertion with the ! operator. 4 min
  4. 4 Summary - Strict null Write a safe configuration loader with strict null. 4 min
13
Project: Type-safe compilerProject
5 lessons · 25 min
  1. 1 AST model Design a mini AST model with discriminated unions. 5 min
  2. 2 Visitor design Write the AST visitor with the visitor pattern. 5 min
  3. 3 Type guards Add a type guard for each node. 5 min
  4. 4 Exhaustive eval Write an evaluation function with exhaustive check. 5 min
  5. 5 Integration Build the working compiler by combining all parts. 5 min
14
Advanced finalFinal
4 lessons · 24 min
  1. 1 Challenge 1: Type math Solve a task combining template literal and mapped. 6 min
  2. 2 Challenge 2: Variance Solve a task testing variance rules. 6 min
  3. 3 Challenge 3: Branded + phantom Solve a task combining branded and phantom types. 6 min
  4. 4 Challenge 4: Mini compiler Solve a task testing the full advanced level. 6 min

Compiler API, transformers, custom type checkers, tsconfig deep dive, project references, emit and performance.

1
Compiler API
4 lessons · 16 min
  1. 1 ts.createProgram Learn to create a Program and source files. 4 min
  2. 2 TypeChecker Learn symbol and type resolution with TypeChecker. 4 min
  3. 3 AST traversal Learn AST traversal with forEachChild. 4 min
  4. 4 Summary - Compiler API Write a simple code analysis tool with the Compiler API. 4 min
2
Transformer
4 lessons · 16 min
  1. 1 What is a transformer? Learn transformer functions. 4 min
  2. 2 Node creation Learn to produce AST nodes with ts.factory. 4 min
  3. 3 Custom transformer Learn to write your own transformer. 4 min
  4. 4 Summary - Transformer Write a logging injector with a transformer. 4 min
3
Custom type checker
4 lessons · 16 min
  1. 1 Type queries Learn custom type queries with TypeChecker. 4 min
  2. 2 Symbol resolution Learn declaration resolution with Symbol. 4 min
  3. 3 Diagnostic production Learn to produce your own diagnostics. 4 min
  4. 4 Summary - Custom type checker Write a custom rule checker. 4 min
4
tsconfig deep dive
5 lessons · 20 min
  1. 1 Build mode Learn project building with tsc --build. 4 min
  2. 2 Project references Learn multi-project setups with project references. 4 min
  3. 3 Module resolution Learn moduleResolution options. 4 min
  4. 4 Path mapping Learn module mapping with paths. 4 min
  5. 5 Summary - tsconfig in depth Set up a monorepo skeleton with multi-project references. 4 min
5
Emit and source map
5 lessons · 20 min
  1. 1 Emit options Learn outDir, noEmit, and emit options. 4 min
  2. 2 Source map Learn sourceMap and inlineSourceMap. 4 min
  3. 3 Declaration emit Learn declaration and declarationMap. 4 min
  4. 4 Decorator metadata Learn type metadata with emitDecoratorMetadata. 4 min
  5. 5 Summary - Emit Write a library build configuration with emit options. 4 min
6
Performance
4 lessons · 16 min
  1. 1 Type complexity Learn the impact of type complexity on compile time. 4 min
  2. 2 traceAnalyzer Learn performance tracing with tsc --generateTrace. 4 min
  3. 3 Project structure Learn performance with project references. 4 min
  4. 4 Summary - Performance Write a performance-focused library project. 4 min
7
Project: Lint pluginProject
5 lessons · 25 min
  1. 1 Plugin design Write a language service plugin skeleton. 5 min
  2. 2 Diagnostic production Add a custom diagnostic producer. 5 min
  3. 3 Code fix Write a code fix provider. 5 min
  4. 4 Configuration Add plugin configuration options. 5 min
  5. 5 Integration Build the working plugin by combining all parts. 5 min
8
Expert finalFinal
4 lessons · 24 min
  1. 1 Challenge 1: Compiler API Solve an analysis task with the Compiler API. 6 min
  2. 2 Challenge 2: Transformer Solve a task requiring your own transformer. 6 min
  3. 3 Challenge 3: tsconfig Solve a task requiring a multi-project monorepo setup. 6 min
  4. 4 Challenge 4: Mini plugin Solve a task testing the full expert level. 6 min

Lessons are free, an account keeps your progress

You do not have to sign up. If you do, you continue where you left off and never lose your work.

  • Progress saved on every device
  • Earn XP and badges
  • Keep your daily streak
  • Get a certificate when you finish
create a free account

Frequently asked questions

Are the TypeScript lessons free?

Yes. All 270 lessons of the TypeScript course are free and you can start without an account.

Do I need any prior knowledge?

No. The beginner level starts from zero; a browser is all you need. If you already know the basics, start at a higher level.

How long does the course take?

Lessons take 2–8 minutes. The whole course is about 19 hours; with 15–20 minutes a day you can finish in a few months.

Do I get a certificate?

Yes. When you complete the course with a free account, a verifiable certificate is issued in your name.

Will I lose my progress without an account?

Without an account your progress is kept only in your current browser. When you create a free account it is moved to your account.

Next step React

Learn React 18+ with JSX, hooks, context, Next.js and modern React architectures through projects.