
TypeScript Crash Course
Stop shipping JavaScript bugs that TypeScript would have caught before your code ever ran. This crash course takes you from zero to production-ready, covering core types, generics, advanced type manipulation, and real-world tooling. Whether you're building React UIs, Node.js APIs, or large-scale applications, you'll write cleaner, safer code from day one.
What your team will master:
You'll start by setting up a professional TypeScript environment and understanding how the compiler works. From there, you'll master core types, interfaces, and object-oriented patterns before moving into generics and advanced type manipulation. The course covers asynchronous TypeScript, module organisation, and declaration files so you can confidently use any npm package. You'll also learn how to integrate TypeScript into build pipelines, write typed unit tests, and enforce code quality with ESLint. Supplementary sections cover TypeScript with React, Node.js APIs, decorators, and migrating existing JavaScript codebases.
How your team learns in practice TypeScript Crash Course
How your team practises TypeScript Crash Course
Professionals from these companies study at Dedika









Course content
8 Chapters • 36 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsTypeScript Foundations and Setup
TypeScript Foundations and Setup
Lesson 1 • Writing and Compiling Your First Program
Write a minimal TypeScript file, compile it, and inspect the JavaScript output. Connects theory to practice by showing the full authoring cycle.
Lesson 2 • Installing and Configuring the Toolchain
Install Node.js, the TypeScript compiler, and a code editor with TypeScript support. Produces a ready-to-use local development environment.
Lesson 3 • The tsconfig.json File
Understand every major compiler option in tsconfig.json and how they affect output. Enables precise project-level control over type checking and emit behaviour.
Lesson 4 • What TypeScript Is and Why It Matters
TypeScript's relationship to JavaScript, its compile-to-JS model, and the problems it solves. Sets the conceptual foundation for every subsequent topic.
Chapter 2HideHide detailsSee detailsCore Types and Type Annotations
Core Types and Type Annotations
Lesson 1 • Type Inference and the any Type
Understand when TypeScript infers types automatically and when explicit annotations are required. Explains why overusing any undermines the type system.
Lesson 2 • Arrays, Tuples, and Enums
Type fixed and variable-length collections and define named constant sets with enums. Covers the most common structured data patterns in everyday TypeScript code.
Lesson 3 • Object Types and Type Aliases
Define object shapes inline and with reusable type aliases. Teaches how to model domain data clearly and avoid repetition across a codebase.
Lesson 4 • Primitive Types
Cover string, number, boolean, null, undefined, symbol, and bigint with their behavioural differences. Provides the atomic building blocks for all typed expressions.
Lesson 5 • Functions: Parameters and Return Types
Annotate function signatures, optional parameters, default values, and rest parameters. Ensures functions are self-documenting and type-safe at every call site.
Chapter 3HideHide detailsSee detailsInterfaces and Object-Oriented Patterns
Interfaces and Object-Oriented Patterns
Lesson 1 • Access Control and Encapsulation
Apply private fields, getters, setters, and readonly to protect internal state. Reinforces encapsulation as a design discipline within TypeScript classes.
Lesson 2 • Defining and Using Interfaces
Declare interfaces to describe object shapes and function signatures. Establishes the primary contract mechanism used throughout object-oriented TypeScript.
Lesson 3 • Implementing Interfaces with Classes
Use the implements keyword to bind classes to interface contracts. Shows how to design loosely coupled systems that are easy to test and swap.
Lesson 4 • Classes in TypeScript
Define classes with typed properties, constructors, and methods. Builds on interface knowledge to show how classes implement and enforce contracts.
Lesson 5 • Inheritance and Polymorphism
Extend classes and override methods while preserving type safety. Demonstrates how TypeScript enforces Liskov substitution through its type checker.
Chapter 4HideHide detailsSee detailsGenerics and Reusable Code
Generics and Reusable Code
Lesson 1 • Generic Constraints
Restrict type parameters with extends constraints to access specific properties safely. Prevents runtime errors by narrowing what types a generic can accept.
Lesson 2 • Generic Interfaces and Classes
Apply type parameters to interfaces and classes to create reusable data structures. Extends interface and class knowledge into parameterised, multi-type designs.
Lesson 3 • Introduction to Generics
Understand the problem generics solve and write the first generic function. Connects to prior function typing knowledge by showing how type parameters generalise signatures.
Lesson 4 • Utility Types Built on Generics
Use TypeScript's built-in utility types such as Partial, Required, Readonly, and Pick. Demonstrates how the standard library leverages generics for everyday transformations.
Chapter 5HideHide detailsSee detailsAdvanced Types and Type Manipulation
Advanced Types and Type Manipulation
Lesson 1 • Conditional Types
Write types that resolve differently based on a condition using T extends U ? X : Y. Unlocks expressive type-level logic for library and framework authors.
Lesson 2 • Union and Intersection Types
Combine types with | and & to express values that can be one of several shapes. Provides the foundation for discriminated unions and type narrowing.
Lesson 3 • Mapped Types
Transform existing types by iterating over their keys with mapped type syntax. Enables systematic property transformations without manual duplication.
Lesson 4 • Template Literal Types
Construct string types dynamically using template literal syntax at the type level. Enables precise typing of string patterns such as event names and CSS properties.
Lesson 5 • Type Narrowing and Guards
Narrow union types using typeof, instanceof, in, and custom type predicates. Enables safe access to type-specific members after a conditional check.
Chapter 6HideHide detailsSee detailsModules, Namespaces, and Project Structure
Modules, Namespaces, and Project Structure
Lesson 1 • Path Aliases and Project References
Configure path aliases in tsconfig.json and split large codebases with project references. Improves build performance and import readability in monorepo setups.
Lesson 2 • Namespaces and Module Augmentation
Use namespaces for logical grouping and augment existing module types. Covers legacy patterns and the modern technique of extending third-party type definitions.
Lesson 3 • ES Modules in TypeScript
Use import and export syntax to split code across files with full type checking. Connects compiler options to module resolution behaviour in real projects.
Lesson 4 • Declaration Files and @types
Understand .d.ts files and how DefinitelyTyped packages provide types for JavaScript libraries. Enables safe use of the broader npm ecosystem from TypeScript code.
Chapter 7HideHide detailsSee detailsAsynchronous TypeScript
Asynchronous TypeScript
Lesson 1 • Async Iterators and Generators
Use AsyncIterator<T> and async generator functions to model streaming data. Extends iterator knowledge to asynchronous data sources such as streams and paginated APIs.
Lesson 2 • Typing Promises
Annotate Promise<T> return types and understand how the generic parameter flows through then chains. Builds on generics knowledge to type async data correctly.
Lesson 3 • Typing Callbacks and Event Emitters
Define typed callback signatures and strongly type event emitter patterns. Covers legacy async patterns still common in Node.js and browser APIs.
Lesson 4 • Async and Await Patterns
Write async functions with typed return values and handle errors with try/catch. Demonstrates how async/await simplifies Promise chains while preserving type safety.
Chapter 8HideHide detailsSee detailsTesting, Tooling, and Production Readiness
Testing, Tooling, and Production Readiness
Lesson 1 • Unit Testing with Typed Test Frameworks
Write unit tests in TypeScript using a typed test runner and assert types at runtime. Ensures test code benefits from the same type safety as production code.
Lesson 2 • Linting TypeScript with ESLint
Configure ESLint with TypeScript-aware rules to enforce code style and catch type-related issues. Complements the compiler by surfacing problems the type checker does not flag.
Lesson 3 • Build Pipelines and Bundlers
Integrate TypeScript compilation into bundler workflows using tools like esbuild or Webpack. Covers source maps, watch mode, and optimised production builds.
Lesson 4 • Debugging TypeScript Applications
Use source maps and editor debuggers to step through TypeScript source at runtime. Closes the loop between authoring and diagnosing issues in running applications.
Lesson 5 • Strict Mode and Code Quality Practices
Enable all strict compiler flags and understand what each one enforces. Establishes a quality baseline that prevents entire categories of runtime errors.
Your valid completion certificate
This course is for you:
JavaScript developer: ready to add type safety to existing day-to-day work.
Frontend engineer: wants typed React components and hooks without guesswork.
Backend developer: building Node.js APIs that need enforced request and response shapes.
Computer science student: learning industry-standard tooling before entering the job market.
Career changer: coming from a typed language and mapping familiar concepts to TypeScript.
Freelance developer: aiming to take on larger, more complex client projects confidently.
Related courses
FAQ
Who is Dedika?
Is the certificate valid in the United Kingdom?
Are the courses free?
What is the course workload?
What are the courses like?
How do the courses work?
What is the duration of the courses?
What is the cost or price of the courses?
What is an EAD or online course and how does it work?
PDF Course



















