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

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.

  • Diving DeeperAfternoon Break

    Afternoon coffee break

  • Diving DeeperDeclaration Merging

    We'll take a close look at type-related information on Visual Studio Code's tooltips, which is ultimately provided by TypeScript's language server. This information sheds light on how values, types and namespaces can stack onto a single named entity, through a process called declaration merging.

  • Diving DeeperThe Compiler API

    We'll build a small example project built on top of the TypeScript compiler API, to extract API documentation from a simple library. Along the way we'll take a look at TypeScript's internal data structures, to put some finishing touches onto our type-checking mental model.

  • Diving DeeperWrap Up and Recap

    We'll recap everything we've learned throughout the day, and discuss some resources for further self-directed learning.


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