Introduction to TypeScript
1.5 (1 rating)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
24 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Introduction to TypeScript to your Wishlist.

Add to Wishlist

Introduction to TypeScript

Building practical, maintainable and scalable applications using TypeScript
1.5 (1 rating)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
24 students enrolled
Created by Packt Publishing
Last updated 5/2017
Curiosity Sale
Current price: $10 Original price: $125 Discount: 92% off
30-Day Money-Back Guarantee
  • 8.5 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • See how TypeScript helps you write maintainable applications
  • Get to know how to set up a cross-platform development environment for TypeScript
  • Understand basic language features: types, classes, interfaces, modules, and generics
  • See practical examples of migrating from JavaScript to TypeScript
  • Take a sneak peek at some more advanced type features such as aliasing, unions, guards, and intersections
  • Configure your workspace for Visual Studio Code and download type declarations for third-party modules
  • Introduce the Express.js web framework along with the real-time communication library Socket.IO and document database MongoDB
  • Write custom declaration files from scratch by relying on API documentation or by inspecting the module source code
View Curriculum
  • This course contains in-depth content balanced with tutorials that put theory into practice. The focus is on giving you both the understanding and the practical examples that will allow you indulge in the art of coding in TypeScript.

TypeScript is a superset of JavaScript that features a robust static type system to help build large-scale applications that are refactor-friendly, maintainable, and scalable. Take advantage of dozens of features from the next generations of JavaScript such as ES2015 and ES2016 without introducing a complex workflow to your project.

This course will guide you from a beginner’s level knowledge in JavaScript to being able to successfully start creating applications in TypeScript. You’ll learn why TypeScript’s tooling gives it a heavy advantage over other languages and see how JavaScript works underneath.

The course begins with an introduction bringing you up-to-date on the state of the JavaScript ecosystem, where TypeScript fits into it, and why you’d want to leverage it. Then we move onto the basics of TypeScript such as setting up your development environment and learning basic language features by building a simple utility application and extending it with more features. Finally, we explore some practical use cases, such as converting plain-old JavaScript to TypeScript and you’ll see how we tackle any issues faced such as external library references, dynamic typing, and more.

By the end of the course, the viewer will be equipped to explain why TypeScript is advantageous for you and your team while also having a foundational knowledge of language features such as the type system, classes, interfaces, modules, and generics.

About The Author

Kamran Ayub is a WebApps consultant and has been associated with the web industry since 2000. He specializes in both front-end and back-end development, and is heavily involved in open source.

Kamran has used TypeScript in large-scale open source projects since version 1.0. Currently situated in Minnesota, he has given talks on Demystifying TypeScript and TypeScript in Action multiple times over the past few years to different audiences and at different conferences such as his own workplace, the Twin Cities Code Camp, Minnesota Developer Conference, and Midwest.js.

He has only received positive feedback on the sessions and is always excited to revamp them each year to update them and spread the love for TypeScript. He is excited to formally record a course on TypeScript where he can take the appropriate time to go over each of the topics he covers in his talks more in-depth and with the ability to focus on important points and explain.

Who is the target audience?
  • This course is for software development professionals who have experience working in JavaScript, from basic working level to intermediate/advanced JavaScript programming. You should have knowledge of the syntax and language of JavaScript before taking this course. If you are a server-side developer with a preference toward languages such as Java and C#, this course is also for you.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
33 Lectures
Setting Up Your Development Environment
3 Lectures 09:19

This video provides an overview of the entire course.

Preview 03:29

We must set up a code editor to be able to use the TypeScript SDK and compile code, as well as edit files. This video will help walk through the installation process for Visual Studio Code, and explain the parts of the editor the user will need to be familiar with.

Cross-Platform Tooling with Visual Studio Code

We will be using Node.js to work with modules and build a sample application later on, so we must install and configure it.

Installing and Configuring Node.js
Understanding TypeScript
4 Lectures 31:02

In order to understand better why TypeScript was developed, we need to understand the history of JavaScript and the motivations to build it.

Preview 05:34

TypeScript adds static typing to JavaScript because JS is a loosely-typed language. Learn how it works by taking a deeper look at the primitive types, functions, objects, and type coercion semantics.

Understanding JavaScript Types

JavaScript is not a perfect language, but there are compelling reasons to use it. Learn about the advantages and disadvantages of using JavaScript.

Advantages and Disadvantages of JavaScript

Learn about what issues TypeScript attempts to address in vanilla JavaScript and how it will help benefit your productivity.

Why TypeScript?
What's New in TypeScript?
2 Lectures 27:16

Learn what language features TypeScript brings that can help you write more maintainable applications.

Preview 17:14

Beyond the basics, what other advanced features can TypeScript offer to enhance the robustness of your applications?

Advanced TypeScript Features
Creating a Basic TypeScript Application
4 Lectures 38:00

Learn how to set up your first TypeScript application and take advantage of the advanced editor tooling in the cross-platform Visual Studio Code editor.

Preview 08:53

In order to get started with building our Base64 encoder, you'll need to understand the basics of binary math and operations in JavaScript.

Binary Math Refresher

Get started writing TypeScript by learning about basic types and syntax through implementing a base64 encoding function.

Implementing a Base64 Encoder

The encoding implementation has a bug. Learn how to walk through and debug your code interactively using Visual Studio Code debugger integration and JavaScript source maps.

Debugging in Visual Studio Code
Implementing Multiple Encoders
3 Lectures 32:47

Now that we have a base64 encoding algorithm, you will learn how to leverage TypeScript interfaces to ensure that when we add new encoding implementations they have a consistent API.

Preview 08:39

Our base64 implementation only supports simple strings. We will use the Node.js runtime library to switch out our implementation while ensuring calling code still works as expected. TypeScript uses declarations to allow us to interact with third-party libraries.

Adding Support for Unicode Using Node.js

By adding another encoder implementation, we'll see how TypeScript can help us ensure consistency within our codebase through interfaces.

Adding Another Encoder Implementation
Refactoring Our Application with Confidence
3 Lectures 45:18

A more robust application would accept arguments passed in from the command-line; so we will leverage the minimist npm module to add support, but we will also want to ensure only a small part of the code depends on minimist.

Preview 18:59

We have a working application, but it will be hard to test. We use a combination of TypeScript features and encapsulation to ensure we decouple our dependencies and ready our application for testing.

Refactoring for Testability

To help create maintainable code, the SOLID principles of software design can be used as a tool to help ensure our codebase stays in a testable and robust state.

Applying SOLID Principles
Testing Our Application Using Jasmine
3 Lectures 54:55

Learn what the Jasmine testing framework is and how it works, so we can describe our application specifications so that we can test it. Once Jasmine is configured, write our first test and execute it using npm.

Preview 12:22

TypeScript and unit testing are complementary. We will see how our tests respond better to refactoring and help ease the headaches of changing JavaScript codebases.

Writing Specifications in Jasmine

Our application code is not the only code we'd like to debug. We can leverage Visual Studio Code to interactively debug tests to help find and solve errors. We can also customize how Jasmine runs to display more verbose test output.

Running Our Test Suite in Visual Studio Code
Migrating a Browser Library
3 Lectures 57:43

Draggabilly.js is a DOM manipulation library that has external dependencies. To begin the migration, we'll need to understand how it's built and put together.

Preview 06:59

To prepare to migrate the library, we will need to set up our TypeScript project and install any needed type declaration dependencies.

Setting Up Visual Studio Code

Where do you start when migrating to TypeScript? We'll cover adding declarations, type annotations, and common compiler errors.

Converting the Code
Migrating a Hybrid Web App
4 Lectures 01:32:47

Many applications today that are written in JavaScript have both server and client code. Often, they use event-based APIs such as to enable real-time communication. The application we will migrate is a Todo application built using Node.js and the Express web framework.

Preview 05:56

To begin migrating the application, we will need to configure our Visual Studio project to add any dependencies and TypeScript project settings.

Setting Up Visual Studio Code

To convert the server-side code, we will go file-by-file and extract any type information we can share into shared interfaces. We will also see how we can leverage some more advanced TypeScript features to ensure how we can prevent the incorrect use of the Socket.IO API.

Converting the Server-Side Code

A common problem when trying to share server and client JavaScript is the use of modules in Node.js. We can leverage the Browserify utility to write our client code as CommonJS modules and bundle for the browser.

Converting the Client-Side Code
Migrating a Node.js Application
4 Lectures 01:48:30

The sample Node library is a small URL parsing library part of the core Node runtime. It depends on two small modules that have no TypeScript declarations anywhere.

Preview 03:35

Before migrating the Node library, we will need to configure our TypeScript project in Visual Studio Code.

Setting Up Visual Studio Code

Not every piece of JavaScript code has TypeScript declarations available publicly. Learn how to read API documentation and source code to build your own custom declarations for use in your projects.

Writing Custom Declaration Files

Learn why enabling strict compiler flags will generate more errors but ends up making your code more robust at runtime to guard against accidental type coercion issues that plague JavaScript codebases. You will also see how to guard against type checking issues and "magic string" property access in TypeScript.

Converting the JS
About the Instructor
Packt Publishing
3.9 Average rating
7,297 Reviews
52,304 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.