Skip to content
Development FE—03

TypeScript at work

A course about how types catch mistakes before you run the code — not about type theory. We take the shop from «React in practice» and move it to TypeScript file by file: props, state, server data, custom hooks. By the end you can read someone else's typed project without dread.

8 modules18 lessons
14 hoursof video and practice
React neededrequirements
Foreveraccess and updates
Format
€49 one-off payment
Place the order Open the programme
Payment by card or through PayPal
Access opens immediately after payment
14-day refund, if you have not started watching
Outcome

What you will be able to do

Read a compiler message and understand what it is complaining about
Describe your application data with types and reuse them
Narrow types with checks instead of casting to any
Type props, children and event handlers
Work with state and forms so the mistake surfaces in the editor
Write generics where they genuinely help — in your own hooks
Validate server data instead of trusting the declared type
Move an existing project to strict mode step by step
Programme

8 modules, one project

Press a module to open its lessons

01 Why types2 lessons · 1 h 24 minOpen

What types really catch, what they do not, and why a project is migrated in pieces rather than in one evening.

Which mistakes types find before you run the code
Adding TypeScript to an existing project
02 The types of your application data2 lessons · 1 h 32 min

We describe the product, the user and the order — the same entities the shop already has.

Primitives, objects, arrays, literal types
type and interface: which to choose and when it matters
03 Functions, narrowing and unions3 lessons · 2 h 14 min

The main working technique of TypeScript: a check in the code after which the type becomes exact.

Arguments, return values and optional parameters
Union types and narrowing through checks
Practice: the loading state as a union
04 Props and children2 lessons · 1 h 34 min

Components with a typed interface: what is required, what is not and how to describe children and ref.

Prop types, default values, children
Wrapper components and forwarding other props
05 State and events3 lessons · 2 h 18 min

useState, forms and handlers: the place where a beginner most often writes any and loses the whole benefit.

useState and useReducer with types
Events, forms and references to DOM elements
Practice: a typed order form
06 Generics without fear2 lessons · 1 h 36 min

Generics on your own hooks: concrete code first, generalisation second — and then the point of them becomes clear.

From a concrete hook to a generic one
Practice: useFetch and useLocalStorage with types
07 Server data2 lessons · 1 h 32 min

A type does not guarantee that the server sent exactly that: we validate the data at the boundary of the application.

API response types and a shared request client
Validating data at the boundary instead of blind trust
08 Migrating the whole project2 lessons · 1 h 50 min

The final module: we turn strictness on step by step and remove the last any from the shop.

strict step by step: what to enable first
The final check: a project without a single any
Materials

What you get

18 lessons with transcripts

Videos with timecodes and a written version: the code from a lesson is copied together with the compiler messages.

The shop from course FE—02

The same project in JavaScript in its starting state and its typed version — you can compare them file by file.

Compiler errors, explained

Twenty typical messages translated into human language, with an explanation of what exactly to fix.

Ready-made configs

A tsconfig for strict and for lenient mode, with a comment on every flag — so you can turn strictness on gradually.

Dediu Pavel
Course author

Dediu Pavel

Teaches the «Web development» direction at Forma. The full list of their courses is on their page.

All courses by this author

The whole first module is open

Watch the lessons of the first module and the first task. If the format does not suit you, you have lost nothing.