Essential TypeScript with Visual Studio Code

Days: 5 day
Price: $2995

Course Details

TypeScript is a superset of JavaScript that compiles to plain JavaScript that can run in any browser and on any platform. It supports the latest JavaScript features, including those from ECMAScript 2015, as well as proposed features from future JavaScript versions, such as decorators and async / await. But what makes TypeScript ideal for large web applications is the addition of optional type annotations, which gives developer tools to provide IntelliSense and syntax checking so that errors are caught at compile-time instead of at run-time.

In this course, you will be provided with in-depth coverage of TypeScript, including language syntax as well as object-oriented and asynchronous programming. You will learn how to organize your code using namespaces and modules. You will also learn to use Visual Studio Code, Microsoft?s lightweight cross-platform code editor, to build RESTful services in TypeScript with Node.js, as well as responsive client applications with Angular 2, which is itself written in TypeScript.

Note: You may use your own laptop with Windows, OS X, or Linux.

Course Agenda

1. Introduction to TypeScript

  • History and Importance of JavaScript
  • JavaScript Strengths, Weaknesses
  • Limitations of JavaScript
  • Advantages of TypeScript
  • TypeScript Design Goals
  • Installing TypeScript
  • Getting Started

2. TypeScript Language Basics

  • Declaring Variables
  • Basic Types
  • Type Annotations
  • Non-Nullable Types
  • Basic Data Structures
  • Operators
  • Flow Control Statements

3. Using Visual Studio Code for TypeScript Development

  • Tooling Options
  • VS Code Features
  • Limitations
  • Project System
  • Navigation Basics
  • Productivity
  • JavaScript Intellisense
  • Configuring TypeScript Projects
  • Compiling TypeScript
  • Debugging

4. Task Automation, Unit Testing, and Continuous Integration

  • Need for Task Automation
  • Task Runners
  • Introduction to Gulp
  • Using Gulp
  • Configuring Build Tasks
  • Debugging Gulp Tasks
  • Testing Approaches
  • Testing Frameworks
  • BDD with Jasmine
  • Running Tests in a Browser
  • Writing Tests in TypeScript
  • Test Runners
  • Continuous Integration

5. TypeScript Type System

  • Type Compatibility
  • Type Inference
  • Access Modifiers
  • Union Types
  • Type Guards
  • Intersection Types
  • Type Aliases
  • String Literal Types
  • Polymorphic ?this? Types

6. Functional Programming

  • Functional Programming
  • Named Functions
  • Arrow Functions
  • Function Types
  • Optional and Default Parameters
  • Rest Parameters
  • Function Overloading

7. Asynchronous Programming

  • Importance of Async
  • Callbacks
  • Callback Hell
  • Promises
  • Generators
  • Async and Await

8. Object-Oriented Programming

  • Introduction to Object-Oriented Programming
  • SOLID Principles
  • Interfaces
  • Classes
  • Inheritance
  • Mixins
  • Abstract Classes
  • Class Expressions

9. Generics

  • Algorithm Reuse
  • Generic constructs
  • Type Parameters
  • Constraints
  • Generic Functions
  • Generic Interfaces and Classes

10. Namespaces and Modules

  • Name Collisions
  • Namespaces
  • Defining Namespaces
  • Limitations of HTML Script Tags
  • Module Loaders
  • ECMAScript 2015 Module Support
  • Module Organization
  • Exporting from Modules
  • Importing from Modules
  • Module Guidelines

11. Practical TypeScript with Express and Angular

  • SPA Architecture
  • Introduction to REST
  • Express Framework
  • Routing Basics
  • MV* Architecture
  • Web Client Frameworks
  • Angular 2 Concepts
  • Angular Components
  • Angular Templates
  • Angular Metadata
  • TypeScript Decorators
  • Services and Dependency Injection
  • HTTP Requests

Details

Options