TypeScript 3 Essentials

TypeScript is exploding in popularity, as more and more developers realize how improved error checking and in-editor documentation supercharges their workflow. In this advanced workshop, we'll build up an understanding of how TypeScript looks at your code, and use that as a foundation to discuss what's possible with classes, interfaces, and more.

We'll take a close look at declaration files, which can work hand-in-hand with JavaScript files to provide the missing type information. We'll write some tests for our types, and even walk through the process of making a fix to the community DefinitelyTyped types.

TypeScript isn't just a great programming language, it's an amazing tool for analyzing code in general. We'll take a look at the TypeScript compiler API, and use it to build a simple documentation tool, based on the same information you see in Visual Studio Code tooltips!

TypeScript 3 Essentials

Stage One From JS to TS

A quick tour of how core JavaScript constructs like variables, functions, objects and classes are used with TypeScript. We'll make extensive use of the TS language server and its integration with Visual Studio Code to explore the compiler's inference and type-checking capabilities

  • Duration: 160 minutes

Stage Two Generics and Advanced Types

TypeScript's type parameters allow types to be defined in terms of other types, similar to how a function's arguments can be used to parameterize its return value. We'll look closely at cases where this kind of abstraction is appropriate, and highlight a few advanced examples to get a glimpse at how capable the TS type system is.

  • Duration: 195 minutes

Stage Three Diving Deeper

In this final section of the course, we'll add some finishing touches to our mental model of how the TypeScript compiler works by studying declaration merging. Finally, we'll build a small API doc generator on top of the TypeScript compiler API.

  • Duration: 125 minutes

Develop a Mental Model

Understand how TypeScript looks at your code, and use that knowledge to be maximally descriptive and type-safe, with minimal effort

Editor Integration

Get the most out of a modern VSCode + TypeScript development environment

Advanced Types

Work with advanced concepts like conditional and mapped types, and methodically debug any mistakes you may encounter in ambient type packages