AngularJS 2 brings the power of component-based development to web programming, but the learning curve is steep . Not only is AngularJS 2 completely different than AngularJS 1.x, it's also based on TypeScript. Most of TypeScript's new features are based on the ECMAScript 6 specification, but they're still foreign to most web developers. To simplify the learning process, this book takes a hands-on approach to teaching TypeScript and AngularJS 2. The content proceeds from the simple to the complex, and starts by introducing TypeScript, with its type declarations, new data types, functions, classes, interfaces, and modules. Most of the book focuses on AngularJS 2 development. After presenting simple components, it explains the new one-way data binding mechanisms, such as event binding and property binding. It also covers Angular's life-cycle methods, pipes, directives, and dependency injection. The third part of the book presents advanced topics related to Angular development. These include routing, web workers, the Material Design library, and form-based components. It also explains how to test Angular components with Protractor. The book's chapters Chapter 1: Introduction Chapter 2: Development Tools Chapter 3: Fundamentals of TypeScript Chapter 4: Classes, Interfaces, and Mixins Chapter 5: The Document Object Model (DOM) Chapter 6: Unit Testing, Namespaces, and Decorators Chapter 7: Modules and Loaders Chapter 8: Web Components and AngularJS 2 Chapter 9: Fundamentals of Angular Development Chapter 10: Directives Chapter 11: Dependency Injection Chapter 12: Asynchronous Programming Chapter 13: Building Forms Chapter 14: Routing Chapter 15: HTTP and JSONP Communication Chapter 16: Web Workers Chapter 17: Advanced Topics Chapter 18: Material Design Chapter 19: Testing Components with Protractor Chapter 20: Displaying REST Data with Dynamic Tables Appendix Complete Fields of @Component and @Directive Appendix Accessing Polymer Components in Angular