Learn TypeScript w/ Mike North

Intro

June 10, 2021

Table of Contents

About the Instructor

Top Goals for this course

Pass along key knowledge gained through thousands of hours of TypeScript teaching, Q&A and pair programming By the end of this course, you will be able to understand challenging type information.

This likely is pretty scary right now, but you’ll know what it means by the end of the course

ts
// Get keys of type T whose values are assignable to type U
type FilteredKeys<T, U> = {
[P in keyof T]: T[P] extends U ? P : never
}[keyof T] &
keyof T
 
/**
* get a subset of Document, consisting only of methods
* returning an Element (e.g., querySelector) or an
* Element[] (e.g., querySelectorAll)
*/
type ValueFilteredDoc = Pick<
Document,
FilteredKeys<
Document,
(...args: any[]) => Element | Element[]
>
>
Try

What do you assume I already know?

  • Modern javascript
  • The basics of function, object and array types
  • Basic generics (e.g., typescript fundamentals v3)
  • Index signatures

Also… some practical experience is important

Workshop Setup

As long as you can access the following websites, you should require no further setup emoji-tada

Which of your TypeScript courses is right for me?

I’ve made four TS courses for Frontend Masters so far:

Core

These courses focus on deep understanding of the programming language and how the TS compiler models and checks your code. Most of the “class time” is spent in a lab environment.

  • TypeScript Fundamentals (v3)
    By the end of this course, you’ll have a basic understanding of the TypeScript language
  • Intermediate TypeScript
    By the end of this course, you’ll be prepared to contribute to a wide range of non-trivial TypeScript projects. You could be well on your way to becoming the TypeScript expert on your team.

Electives

These courses focus on application of TypeScript to solving problems at scale. Most of the “class time” is spent building apps together.

  • Production-Grade TypeScript
    This course focuses on build pipelines, tooling, and practical use of TypeScript at scale.
  • JS & TS Monorepos
    This course focuses on monorepos — the concept of multiple sub-projects existing in a single git repository.


© 2023 All Rights Reserved