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

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

  • From JS to TSTyping Values

    We'll begin by looking at how to declare (and infer) the types of variables -- starting with primitive values and quickly moving on to objects and arrays.

  • From JS to TSFunctions

    We'll study how functions (or methods) are typed in TypeScript, including rest params, default params, signature overloading and callbacks.

  • From JS to TSInterfaces and Type Aliases

    If we want to refer to a type by name, and reuse it across our codebase, we'll need to define it as an interface or type alias. We'll compare these two tools, exploring the limitations of each, and how they can be used together to define "recursive types".

  • From JS to TSClasses

    TypeScript classes look very similar to what we're used to seeing in JavaScript, with a few notable exceptions. We'll get "hands on" with some examples involving the implements keyword, access modifier keywords, param properties, abstract classes and more!

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