As a modern web developer, it is almost impossible to create a successful application without JavaScript. In fact you might be venturing into the world of JavaScript apps already and have it as your primary language across layers. JavaScript being a dynamic language is at many times challenging to write and work with. Enter TypeScript. This typed superset of JavaScript has filled in the gaps where developing JavaScript natively suffers the most. In this deep dive you'll learn the fundamentals and proceed into the more advanced features of TypeScript. In part one of the session you'll learn about the fundamental language aspects of TypeScript, and how to begin using this wonderful language in your applications. In part two, we will go beyond the basic language features and dig into new territory where you'll learn about advanced types, decorators, mixins, symbols, generics, iterators, and declaration merging to further your understanding of the wide variety of TypeScript features. In this deep dive session you will see how working with TypeScript allows us to leverage familiar skills and have a similar experience as when working with managed and strongly typed languages to make writing JavaScript much easier.