TypeScript

4.9
19 reviews

last updated 7 months ago

This course is up to date, guaranteed

So you want to learn TypeScript?

Here are some common approaches

Random Blogs

It's not that blog posts are bad, it's that finding and piecing together unrelated yet up to date posts that form a linear, cohesive path to learning complex technical topics is hard.

Conferences

Things conferences are great for - networking, travelling on your company's dime, free swag, finding other companies to join. Things conferences are not great for - learning in depth technical topics that you will remember and put into practice literally 3 days later when you’re back at the office, quality wifi.

Youtube Videos

It's happened to all of us, one moment you're using Youtube to learn about React's useEffect Hook and the next you're watching a "KIDS REACT TO PAYPHONES" video. Finding a high-quality, up-to-date YouTube video that effectively answers all of your questions on a JavaScript topic might actually be more difficult than finding a needle in a haystack. With so many videos and zero quality control, it’s easy to get sucked down the YouTube rabbit hole for hours without getting much learning out of it.

All-In-One Subscriptions

These are the larger companies that offer courses on seemingly every technology under the sun. We won’t name them, but chances are your company has a business subscription to at least one of them and chances are that you don’t use it much. Their courses are made by a wide assortment of third-party contractors and optimized for production quality, not educational value.

Live Workshops

You know what they say, the best learning happens sitting in a classroom for 8 hours at a time listening to dry lectures and working through practice problems that only serve to make you feel comfortable so you’ll feel like you learned something. Oh wait, no. No one says that.

The better approach?

All our courses follow the same proven structure, optimized for knowledge, not the illusion of learning.

Effort

We're obsessed with making the most effective developer education content on the planet. On average, it takes us around 1,900 hours to create a new course. While others prioritize quantity, we optimize for quality.

Non-Contextual Practice

Similar to the non-contextual analysis, context is everything. The first time you're hands-on with a new topic, any extra contextual information you have to process only serves as a distraction. This is why we first have you work through small, focused practice problems before you ever see the new topic in the context of a larger project.

Non-Contextual Analysis

The first time you're introduced to a topic, any extra contextual information you have to process only serves as a distraction. Although it takes more time, our non-contextual analysis comes in two forms, video and text. This way, no matter how you prefer to learn, there's an option for you.

Contextual Practice

You've probably experienced it before, you feel like you're learning so much going through a tutorial only to hit a wall once it's time to actually apply that knowledge outside of the context of the tutorial. All the non-contextual practice in the world is useless if you're not then able to take that knoweldge and apply it towards a (contextual) production level codebase.

Quiz

Nothing fancy here. After learning about the topic you'll receive a quiz to make sure you have a solid conceptual understanding before moving on to the hands-on practice.

The result?

TypeScript Mastery

The ability to take what you learn and apply it towards a production codebase

This Course

  • 58 Topics
  • 316 Minutes of Video
  • 52,304 Words of Text
  • 30 Quizzes
  • 9 Exercises
  • 3 Projects

Outline

  • Introduction

    • Introduction, Philosophy, and Tips
    • Projects (What you'll build)

    We'll start the course off with some housekeeping items. You'll learn about the best strategy for getting the most out of the course as well as what you'll build during the course.

  • Getting TypeScript Configured

    • Basic TypeScript Configuration

    TypeScript is both a type checker and a compiler, so you'll need to install it to use it with your projects. You'll also learn about the most important configuration settings for TypeScript.

  • Project: Tic Tac Toe

    • (Project) Base Project
    • (Project) Adding Base Types
    • (Project) Button Event Handler
    • (Project) Win Condition

    At this point, you've learned enough to actually build a program in TypeScript! We'll make Tic Tac Toe using TypeScript so you can get a feel for how to write type definitions that match the data structures you use in your code.

  • Type Narrowing

    • Common Type Guards
    • (Quiz) Common Type Guards
    • Handling null and undefined
    • (Quiz) Handling null and undefined
    • (Practice) Narrowing Types
    • (Solution) Narrowing Types
    • (Bonus) Structural vs Nominal Typing
    • Discriminating Unions
    • (Quiz) Discriminating Unions
    • (Practice) Discriminating Unions
    • (Solution) Discriminating Unions
    • Assertion Signatures
    • (Quiz) Assertion Signatures
    • User Defined Type Guards
    • (Quiz) User Defined Type Guards
    • (Practice) User Defined Type Guards
    • (Solution) User Defined Type Guards

    Often, you'll find that you have a value that could be several different types. How can you tell what type it actually is? Once you learn about Type Narrowing, you can add runtime checks to determine the type of any value.

  • Modules

    • (Bonus) From IIFEs to CommonJS to ES6 Modules
    • (Bonus) ES Modules In Depth
    • Modules in TypeScript
    • (Quiz) Modules in TypeScript
    • (Bonus) TypeScript Namespaces

    Modules are all about getting code from one file into another file. TypeScript has a nuanced approach to modules, so you'll learn what things to watch out for as you use modules in your TypeScript code.

  • Advanced Transformation Types

    • Recursive Conditional Types
    • Template Literal Types
    • Mapped Types Key Remapping

    TypeScript 4.1 may have come out a week before this course launched, but that doesn't mean you won't learn about the new goodies that came with it! You'll learn about several new transformation types that come with the latest version of TypeScript.

  • TypeScript Overview

    • (Pre-req) Glossary
    • Why TypeScript?
    • (Quiz) Why TypeScript?
    • (Bonus) ECMAScript, TC39, and the Standardization process

    Whenever you learn a new tool, you should first ask yourself why it's necessary. If you can't answer that question, you may not need it. In this section, we'll answer that question in regards to TypeScript as well as cover some other programming fundamentals that TypeScript utilizes. We'll also do a quick refresher on how JavaScript (and thus TypeScript) features are standardized.

  • Basic Type Checking

    • Implicit Type Checking
    • (Quiz) Implicit Type Checking
    • Adding Type Annotations
    • (Quiz) Adding Type Annotations
    • Typing Function Declarations
    • (Quiz) Typing Function Declarations
    • (Practice) Type Annotations
    • (Solution) Type Annotations

    Now that you're all set up, you can start writing TypeScript code! You'll learn about the TypeScript type checker and how to write type annotations when the type checker can't automatically infer them.

  • Classes

    • Class Definition
    • (Quiz) Class Definition
    • Class Modifiers
    • (Quiz) Class Modifiers
    • (Practice) Classes
    • (Solution) Classes

    In this section you'll learn about how to define classes and some special features that TypeScript provides to give your classes a bit of extra type safety.

  • Generics

    • Generics
    • (Quiz) Generics
    • (Bonus) Zustand Implementation
    • (Practice) Generics
    • (Solution) Generics

    Just like you can write functions to reuse code, you can write generic types to reuse type definitions throughout your codebase. We'll even look at a real-world library to see how it uses generics.

  • Declaration Files

    • Built-In Type Definitions
    • (Quiz) Built-In Type Definitions
    • (Bonus) Outputting TypeScript Definitions
    • Definitely Typed and @types/ packages
    • (Quiz) Definitely Typed and @types/ packages
    • (Bonus) Typing an NPM module that has no types

    What happens when you want to use JavaScript code in TypeScript? Can you even do that without sacrificing type safety? Yes, you can, with declaration files. You'll learn about the type definitions that ship with TypeScript, third-party type definitions, and how to write your own type definitions for third-party modules.

  • Extra Topics

    • Unexpected TypeScript Behavior
    • (Quiz) Unexpected TypeScript Behavior
    • (Bonus) Experimental Decorators

    In this section you'll learn about all the things that don't really fit with the normal flow of the course.

  • Typing in JavaScript

    • JavaScript Types
    • (Quiz) JavaScript Types

    Types are fundamental to TypeScript, so naturally you'll need to be familiar with the base types that exist in JavaScript.

  • Special TypeScript Types

    • `any` and `unknown` types
    • (Quiz) `any` and `unknown` types
    • Interfaces
    • (Quiz) Interfaces
    • (Practice) Interfaces
    • (Solution) Interfaces
    • Enum and Tuple Types
    • (Quiz) Enum and Tuple Types
    • Void and Never Types
    • (Quiz) Void and Never Types
    • `type` aliases
    • (Quiz) `type` aliases
    • Union Types
    • (Quiz) Union Types
    • Intersection Types
    • (Quiz) Intersection Types
    • Literal Types
    • (Quiz) Literal Types
    • (Practice) Union & Literal Types
    • (Solution) Union & Literal Types

    TypeScript includes a few special types which it uses to augment the types that come with JavaScript. You'll learn how you can use these to add better type safety to your programs.

  • Advanced TypeScript Types

    • TypeScript Operators
    • (Quiz) TypeScript Operators
    • (Bonus) Advanced Function Typing

    TypeScript comes with its own set of operators which you can use to transform your types. You'll also learn about some special ways to add type annotations to functions.

  • Transformation Types

    • (Bonus) Thinking In Types
    • Mapped Types
    • (Quiz) Mapped Types
    • Conditional Types
    • (Quiz) Conditional Types
    • (Practice) Utility Types
    • (Solution) Utility Types

    Once you understand generics, a whole world of possibility opens up. You can use TypeScript operators with generic types to transform your types in really powerful ways. You'll apply what you learn by recreating the utility types that ship with TypeScript!

  • Advanced TypeScript Configuration

    • Additional TSConfig.json options
    • (Quiz) Additional TSConfig.json options
    • (Bonus) How the `target` field works
    • Module Resolution
    • (Quiz) Module Resolution
    • (Bonus) Configuring for Webpack Development
    • (Bonus) Configuring for Babel Development
    • (Bonus) Configuring for Modern Web Development
    • (Bonus) Configuring for Node Development
    • (Bonus) Configuring for Library Development with TSDX

    There are a lot more configuration options for TypeScript, so you'll learn about a few more. You'll also learn how to configure TypeScript for several different development environments.

  • Project: Web Server

    • (Project) Initial Node.js Setup
    • (Project) Static Web Server
    • (Project) Multiple Routes
    • (Project) Dynamic API Route

    Now that we know a bit more about configuring TypeScript, we'll use this knowledge to write a Node.js server using TypeScript. We'll handle the request and response object, create a few routes, and even grab some dynamic data.

  • Hype

    This is my first course with ui.dev, the experience thus far has been great! Absolutely lives up to the advertised quality. The pacing, structure and focused content is a breath of fresh air compared to cookie-cutter courses found elsewhere. Learning a ton and enjoying every minute of it.

    NK
    Nikhilesh Katakam

    Thanks for the typescript course Alex, its very clear and informative. I highly recommend this to anyone who want to learn typescript.

    Good course, highly recommended, with plenty of content. It doesn't simply cover the basics, but instead goes deep into advanced things like type transformations. Note that it's though and quite long, so it will take some time and effort to complete it.

    SH
    Sean Healey

    Fantastic course. You can tell Alex put a lot of time and thought into how to structure everything so you feel the learning comes natural.

    GM
    Glenn Mills

    Was part of the Beta test group and loved it. Great work!

    T
    Tadek

    Great course, very in-depth, the section about Transformation Types absolutely brilliant! I have taken quite a few TS courses so far but I think this one has been the best.

    DN
    Daniel Nehring

    I loved how this course was very much targeted at intermediate/professional javascript users. I feel like this course has helped me develop an intuition around how to think about typescript. The course cadence is smooth and each section feels is appropriately ordered.

    This is by far the most comprehensive typescript course I have taken so far.

    RH
    Robert Hanna

    Really fantastic course. If you're interested in TypeScript at all I can not think of a better value for your time. Each lesson builds upon the last so you are never left confused when the more advanced topics are covered. It's obvious a lot of work went into making this and the quality reflects that.

    This course certainly delivered what it had promised! After this course I have a comprehensive view of TypeScript and I'm confident to start using it in my next project.

    Master TypeScript today

    FAQ

    What makes these courses different from other online courses?

    Our courses are designed to teach you everything you need to know to confidently write production-ready code. The tradeoff is it will require more work and focus than a course that features a few bite-sized screencasts. Real learning takes time, but you can feel confident that once you've finished a course, you’ll have mastered everything you need to know with minimal knowledge gaps.

    In which order should I take the courses?

    If you're comfortable with JavaScript (including ES6) and want to jump straight to React, go with "React", "React Hooks", then any other course that looks interesting. If you're not comfortable with JavaScript, start with "Modern JavaScript", then "Advanced JavaScript", then any other course you'd like.

    I need an official invoice with certain fields like VAT. Can I get one?

    Once you sign up, as part of the welcome email, you'll be given a link to fill out where you can input all your company's info.

    Do the courses have captions?

    Yes.

    What level of experience is required for getting the most out of these courses?

    A fundamental understanding of JavaScript or familiarity with another programming language. For example, you should be comfortable with functions, arguments, loops, control flow, etc. If you want to jump straight in to the React courses, we recommend having a stronger knowledge of JavaScript, which you can get from our JavaScript courses if you’re unsure.

    What projects will I build throughout the courses

    You can find every project on the /projects page.

    How long should I expect each course to take?

    Naturally, it depends. Considering all our courses are comprised of video, text, quizzes, practice problems, and curriculum - 15-30 hours per course is a safe assumption.

    How does the subscription work?

    Like Netflix. You pay $40 per month or $350 per year for access to all our courses, premium newsletters, and events. Your subscription will be active until you cancel, which you can do at any time in your dashboard.

    4.9

    19 Reviews

    95%
    5%
    0%
    0%
    0%
    • LC
      Luis C
      56 days ago

      I really enjoyed this course. Alex Anderson is an excellent instructor. The course is very well structured and encompasses a lot of content. I learned a lot.

    • M
      Matt
      2 months ago

      Very in-depth, covered a lot of great content which i'm sure to apply in my work.

    • Jordan Gibbings
      3 months ago

      This is my first course with ui.dev, the experience thus far has been great! Absolutely lives up to the advertised quality. The pacing, structure and focused content is a breath of fresh air compared to cookie-cutter courses found elsewhere. Learning a ton and enjoying every minute of it.

    • M
      Mircea
      3 months ago

      good crash course into ts. previous js experience is kind of needed (which is expected) and that's fine: you're here to learn ts, not js. i think more hands-on exercises and projects would help a bit, but overall I am satisfied by the value delivered by this course

    • Emeka
      4 months ago

      This is by far the most comprehensive typescript course I have taken so far.

    • Albert Vila Calvo
      4 months ago

      Good course, highly recommended, with plenty of content. It doesn't simply cover the basics, but instead goes deep into advanced things like type transformations. Note that it's though and quite long, so it will take some time and effort to complete it.

    • Platon Koby
      4 months ago

      I liked this course a lot. Very informative, the video / text format is very nice, since if I didn't understand something from the video, reading about it might make things more clear and vice-versa.

    • Adithya NR
      6 months ago

      I loved the course! I learned a lot about TypeScript in a short period of time, thanks to this course.

    • Guilherme Sa
      6 months ago

      Lots of detail and time spent on intermediate to advanced stuff and the course was both challenging and encouraging. I enjoyed that. I also enjoyed that the editing style (ie. sometimes pausing the video and adding voice commentary, speeding up the video w/ audio overlay when necessary, etc) is similar to Tyler's other courses. It's very important that the voices at ui.dev be seductive like Tyler's. Ok, soothing like Tyler's. :)

    • Miika Luiro
      6 months ago

      This course certainly delivered what it had promised! After this course I have a comprehensive view of TypeScript and I'm confident to start using it in my next project.