Learn TypeScript w/ Mike North

Intro

October 25, 2023

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
  • Give you a framework for understanding challenging type information.
  • Teach you how to understand and use a wide range of TypeScript’s built-in utility types

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?

Also… some practical experience always helps!

Workshop Setup

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

If you’d like to follow along with interactive examples, please install Volta

sh
curl https://get.volta.sh | bash # Linux / macOS only
volta install node@lts yarn@^3

Make sure to follow the installation instructions for volta — both what you see on the website and what you see in the CLI console. Next, clone the git repo for this course github.com/mike-north/typescript-courses, enter the directory, and run yarn to install all dependencies

sh
git clone https://github.com/mike-north/typescript-courses
cd typescript-courses
yarn

most of our work today will be in the packages/notes-intermediate-ts-v2 folder

sh
cd packages/notes-intermediate-ts-v2


© 2023 All Rights Reserved