TypeScript

TypeScript course — Prowid
Course duration
2 months / 10 lessons
Individual
Per month 160 AZN
Group
Per month 130 AZN
Paying for the full course in a group
15% discount
Installments
50/50
Subscription
from 30 AZN a month
TypeScript is a language that adds static typing to JavaScript. Today it is the standard in React, Vue and Node.js projects. JavaScript knowledge is required for this course.

Enrollment for a new group is open — send a request to reserve your seat

Lessons are taught live in Azerbaijani and Russian.

Or study on your own in your personal account → with a subscription from 30 AZN a month

Course curriculum

Introduction to TypeScript: why you need it, tsc and tsconfig
Basic types, type inference, any and unknown
Objects: type and interface
Typing functions and overloads
Union, intersection, literal types and type narrowing
Classes and OOP: access modifiers, abstract classes
Generics
Utility types: Partial, Pick, Omit, Record; keyof and typeof
Modules, .d.ts files and third-party library types
Typing API data and validation with Zod
TypeScript + React and TypeScript + Node.js
Project: migrating a JavaScript project to TypeScript
How do we teach?

Learning stages

01

Webinar

Students join the lesson live. At the end of each lesson, students are sent a video recording of the class.

02

Homework

Every assignment is based on the topic covered in the webinar. Homework helps you reinforce the material and understand it better.

03

Working with a mentor

The teacher stays in touch with the group both during the course and outside class. Any questions get answered right away.

04

Portfolio

During the course you'll complete several projects on different topics — they'll show employers what you can do.

Self-paced learning

The full curriculum in your personal account

112 topics with theory, examples and practice. The first 4 are free, the rest come with a subscription. Interactive lessons with slides and coding trainers: 101.

Getting Started with TypeScript6 topics
  1. Why TypeScript: Static Typing on Top of JavaScript
  2. Installing TypeScript and Running the tsc Compiler
  3. Running TS Without a Build Step: tsx and Node.js 22 Type Stripping
  4. tsconfig.json: Structure and Core Options
  5. Strict Mode and Additional Compiler Checks
  6. Working in the Editor: Reading Compiler Errors and Hints
Basic Types12 topics
  1. Primitive Types: string, number, boolean, bigint, symbol
  2. Type Annotations: Variables, Parameters and Return Values
  3. Type Inference: let vs const, Widening and Contextual Typing
  4. null and undefined: strictNullChecks, ?., ?? and the ! Operator
  5. Arrays: T[], Array<T> and Inference in Array Methods
  6. Tuples: Fixed Length, Named and Optional Elements
  7. Object Types and Optional Properties
  8. Type Aliases: Naming and Reusing Types
  9. readonly: Immutable Properties, Arrays and Tuples
  10. Index Signatures: Objects with Dynamic Keys
  11. any, unknown and never: TypeScript's Special Types
  12. Practice: A Typed Grade Book Module
Unions, Literal Types and Narrowing10 topics
  1. Union Types: A Value of One of Several Types
  2. Literal Types and as const
  3. Narrowing with typeof, Truthiness and Equality
  4. Narrowing with in and instanceof
  5. Discriminated Unions: Using a Shared Tag Field
  6. Exhaustiveness Checking with never
  7. Type Assertions with as: When They Are Safe and When Not
  8. Custom Type Guards: value is T Predicates
  9. Assertion Functions: asserts value is T
  10. Practice: An Order State Machine with Discriminated Unions
Modeling Data: Interfaces, Types and Enums10 topics
  1. Interfaces: Describing the Shape of an Object
  2. Extending Interfaces and Intersection Types
  3. Interface Declaration Merging
  4. type vs interface: Practical Rules for Choosing
  5. Structural Typing and Type Compatibility
  6. The typeof and keyof Type Operators
  7. Indexed Access Types: T['key'] and T[number]
  8. Enums: Numeric, String and const enum
  9. as const Objects as an Enum Alternative
  10. The satisfies Operator: Type Checking Without Widening
Typing Functions6 topics
  1. Function Types: Type Expressions and Call Signatures
  2. Function Parameters: Optional, Default, Rest and Destructured
  3. Return Types: Explicit Annotations, void, undefined and never
  4. Callbacks and Function Compatibility
  5. Function Overloads
  6. Typing this in Functions and Methods
TypeScript in the Browser: DOM and Events6 topics
  1. A Frontend Project with Vite and TypeScript
  2. Typing DOM Elements: querySelector and the HTMLElement Hierarchy
  3. Typing Events: Event, MouseEvent, KeyboardEvent
  4. Forms and Inputs: value, FormData and Validation
  5. localStorage and JSON: Reading Data Safely
  6. Project: A Typed To-Do App
Generics7 topics
  1. Why Generics: From any to Type Parameters
  2. Generic Functions: Type Argument Inference and Multiple Parameters
  3. Generic Constraints: extends and K extends keyof T
  4. Generic Types and Interfaces with Default Type Parameters
  5. Controlling Inference: const Type Parameters and NoInfer
  6. Generic Higher-Order Functions and Variadic Tuples
  7. Practice: A Typed EventEmitter
Utility Types and Type Transformations13 topics
  1. Utility Types: Partial, Required and Readonly
  2. Pick, Omit and Record: Selecting Keys and Building Dictionaries
  3. Exclude, Extract and NonNullable: Working with Unions
  4. ReturnType, Parameters, Awaited and Other Function Utilities
  5. Mapped Types: [K in keyof T]
  6. Modifiers and Key Remapping in Mapped Types
  7. Conditional Types: T extends U ? X : Y
  8. Distributive Conditional Types
  9. The infer Keyword: Extracting Types
  10. Template Literal Types and Intrinsic String Types
  11. Recursive Types: Trees, JSON and DeepPartial
  12. Branded Types: Nominal Typing in TypeScript
  13. Project: Generic Data Table Utilities
Classes, OOP and Decorators9 topics
  1. Classes in TypeScript: Fields, Constructors and Parameter Properties
  2. Access Modifiers: public, private, protected and #private
  3. Class Inheritance and the override Keyword
  4. Abstract Classes and Implementing Interfaces
  5. Static Members and the Polymorphic this Type
  6. Generic Classes: Collections and Repositories
  7. Decorators (TC39 Standard): Methods and Classes
  8. Field and Accessor Decorators, Metadata
  9. Resource Management: using, Disposable and AsyncDisposable
Async Code, Errors, APIs and Zod9 topics
  1. Typing Promises and async/await
  2. Error Handling: catch (e: unknown) and Custom Error Classes
  3. The Result Pattern: Errors as Values
  4. Typing fetch: Requests and Responses
  5. Modeling API Responses: DTOs, Pagination and Generated Types
  6. Zod: Schemas, parse/safeParse and z.infer
  7. Zod: Composing Schemas, Unions and Arrays
  8. Zod: Transforms, Refinements and Coercion
  9. Project: A Typed API Client
Modules and Declaration Files6 topics
  1. ES Modules in TypeScript: import type and verbatimModuleSyntax
  2. Module Resolution: module, moduleResolution and Path Aliases
  3. Declaration Files (.d.ts): What's Inside and How to Generate Them
  4. Third-Party Library Types: @types and DefinitelyTyped
  5. declare: Ambient Declarations and Module Augmentation
  6. Practice: Writing a .d.ts for an Untyped JS Library
TypeScript on the Server: Node.js and Express6 topics
  1. A Node.js 22 Project with TypeScript: Setup and Build
  2. Typed Configuration: Environment Variables and Zod
  3. Express 5 with TypeScript: Typing Request and Response
  4. Express: Request Validation with Zod and Typed Middleware
  5. Express: Centralized Error Handling and Layered Architecture
  6. Project: A REST API with Express and TypeScript
TypeScript with React5 topics
  1. React with TypeScript: Vite Setup and Typing Props
  2. Typing Hooks: useState, useReducer, useRef and useContext
  3. Events and Forms in React with TypeScript
  4. Generic Components and Custom Hooks
  5. Practice: A Product Catalog with React and TypeScript
Code Quality, Testing, Migration and Final Project7 topics
  1. TypeScript Project Structure and Project References
  2. ESLint with typescript-eslint: Type-Aware Linting
  3. Testing with Vitest: Unit Tests, Mocks and Type Tests
  4. Migrating from JavaScript to TypeScript: A Step-by-Step Strategy
  5. Common TypeScript Mistakes
  6. Project: Migrating a JavaScript App to TypeScript
  7. Final Project: A Full-Stack TypeScript Application

Group and individual classes include a teacher, homework review and a certificate. The subscription gives you materials, exercises and progress tracking at your own pace, without teacher feedback.

TypeScript course: how to enroll

Fill in the form and we will tell you the start date of the next group, the schedule and payment terms. Or come to a free trial lesson first.

WhatsApp