Getting really good at JavaScript and TypeScript
3.8 (24 ratings)
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.
194 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Getting really good at JavaScript and TypeScript to your Wishlist.

Add to Wishlist

Getting really good at JavaScript and TypeScript

Turn your average JavaScript skills into excellent JavaScript skills, and use the power of TypeScript to tame this beast
3.8 (24 ratings)
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.
194 students enrolled
Created by Sahil Malik
Last updated 11/2015
Learn Fest Sale
Current price: $10 Original price: $20 Discount: 50% off
3 days left at this price!
30-Day Money-Back Guarantee
  • 3.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Write good and maintainable JavaScript
  • Architect large scale JavaScript applications
  • Learn Typescript
  • Use TypeScript effectively
  • Avoid common JavaScript mistakes
View Curriculum
  • Basic knowledge of JavaScript is required

You can’t avoid JavaScript, but you can avoid all the pain! This course turns your average JavaScript skills into great JavaScript skills, and makes you a champ at using TypeScript in a real project.

JavaScript, the only language that runs everywhere, a language with huge shortcomings, finicky behavior, and yet something we must master. TypeScript that removes all the pain of JavaScript, but only if you use it properly. This course takes your hacky JavaScript skills, and turns you into a real JavaScript pro. And from there, it teaches you practical TypeScript by demonstrating the fundamentals, and real world usage in a project.

Who is the target audience?
  • This course is for web developers who know JavaScript, but want to get really good at it.
  • This course is for JavaScript developers who wish to start using Typescript in their projects effectively.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 71 Lectures Collapse All 71 Lectures 03:24:35
1 Lecture 03:43

A basic introduction to the course. Why I produced this course, who will benefit from it. Your background and prerequisites for this course. The overall outline and overview of the course, and an introduction to the instructor.

Preview 03:43
JavaScript Problems
33 Lectures 01:14:36

Why JavaScript is the way it is today!

Preview 02:44

Setting up our dev environment for the course

Preview 03:16

Globals are bad, but in JavaScript they are so easy to create


The standard technique for avoiding globals


Sometimes global variables can be quite sneaky. Be on guard.

Accidental Globals

Some best practices to catch common mistakes

Use Strict and JSLint

Globals bite us again, in the most unexpected spots

Accidental Globals and Loops

Avoiding accidental creation of globals

Avoiding accidental globals

ES6 enhancements, but we can't use them until ES6.

ES6 and the let keyword

List of reserved keywords - too many to avoid reliably. So how do we avoid them?

Reserved Keywords and avoiding them

Even careless semi colons can lead to errors

Semicolon Madness

TypeOf operator isn't very good

typeof Unreliability

Who knew numbers could be so unreliable

types of numbers

Difference between null or undefined, but sometimes they can be the same!

typeof null and undefined

DataTypes behave in unexpected ways with different operators

DataTypes and Operator related mistakes

Use parseInt to be safe, but there be landmines here!

parseInt mistakes

Not a number, is a number? Apparently!

NaN is a number

parseInt issues once again, be defensive, very defensive!
parseInt and radix confusion

Comparison operators should be simple, right?

Comparison Operator bugs

More unexpected operator behavior

+ and - operator issues

A very common mistake, except there is no compiler to help out!

if and assignment related mistakes

When a number isn't what you thought it was!

Numbers can be inaccurate

Bitwise can bite !

Bitwise operators

More number weirdness

Number Precision Issues

You can do without with

With operator issues

Arrays so simple, yet so complex

Problems with Arrays

Function unique weirdness in JavaScript.

Function parameter issues

Functions can also be scopes.

Understanding scopes

Hoisting while helpful can lead to errors


Content delivery network failures are your failures


Its not secure

Data secrecy in JavaScript

When this isn't what you thought it was

this keyword confusion

.. and there are more issues.

Other Misc Issues
JavaScript best practices
2 Lectures 20:28

JavaScript can be very error prone. But some best practices will keep you safe.

Best Practices

Over time there are coding conventions that are there for a reason. Stick with these because they are not only a standard, they will help you avoid silly mistakes

Coding Conventions
TypeScript: An Introduction
1 Lecture 03:25

So we know JavaScript. If we know JavaScript, we also know that it is a somewhat problematic language. A language that is very easy to make mistakes in. TypeScript is a wonderful way of writing JavaScript that avoids many of those problems. Lets dive into TypeScript, starting with introductions.

Preview 03:25
What is TypeScript?
3 Lectures 04:52

What is TypeScript, and why do we care?

What is TypeScript

How does TypeScript fit in with current web technologies?

How TypeScript works

The various important workflows and files involved.

ts, js, sourcemaps and d.ts files
TypeScript Development Environment
4 Lectures 32:30

The easy way to TypeScript, but not cross platform

Using TypeScript in Visual Studio

Using Visual Studio code and Gulp to setup TypeScript

Setting up VS Code for TypeScript using Gulp

Save -> F5 -> Repeat, is a good workflow, but needs continous background compilation.

Continous compilation with watch

What good is a language you cannot debug? In this session we setup how to debug TypeScript.

Debugging TypeScript
TypeScript in depth
27 Lectures 01:05:01

TypeScript makes even plain JavaScript better

Basic refactoring in plain JS

No TypeScript yet, and you are already seeing benefits

Parameter matching in functions in plain JS

Catching silly errors early - even if you don't type TypeScript (yet)

Datatype checking in plain JS

Strong typing is good

Specifying data types in Typescript

So many HTML elements, intellisense would be nice

Intellisense and help for HTML elements

Intellisense and help text teach me as I work

Learn new HTML tricks with TypeScript

ES6 and ES7 features will address the shortcomings of JavaScript, but we can't use them today, or can we? If you use TypeScript, you can use all these features without worrying about browser issues.

Features from the future and browser compatibility

Intellisense becomes very important in larger projects.

Intellisense for code you write

Frequently we use third party libraries. It would be nice to get intellisense and help text for those third party libraries.

Intellisense for code you didn't write

Using interfaces effectively to avoid errors.

Using interfaces to catch typos

Arrays can be a pain, but with TypeScript they are such a breeze to manage.

Managing Arrays with Interfaces and Generics

In JavaScript everything is a variable, even functions. Mix the power of TypeScript and you get constructs even C# can't do.

Functions as DataTypes to catch errors

Sometimes we need static variables, only if JavaScript could do them elegantly.

Understanding statics in TypeScript classes

Stay classy, and provide decent constructors where you need to, with TypeScript of course.

Implementing constructors on classes

More classy stuff with functions, just like you'd do in any other OO language.

Adding functions to classes

Inheritance can be so complex but with TypeScript it is so intuitive.

Implementing inheritance in TypeScript

What interfaces give you in TypeScript

Understanding interfaces in TypeScript

Mixing matching merging interfaces.

Extending interfaces

Providing encapsulation.

Private properties in classes

Super keyword helps you access base class properties and methods, and how it works.

The super keyword

More encapsultion with accessors


How statics work in a class in TypeScript


Use classes or interfaces interchangeably, and where they are not interchangeable.

Classes as interfaces

Modularize your code to make it more manageable.


More features from the future, this time around ES6 features for functions.

Function parameter management using ES6 and TypeScript

Even mMore features from the future, this time around arrow functions, with this keyword benefits for free.

Arrow Functions and this keyword

Generics are very powerful. Learn how to use them effectively.

Using generics effectively
About the Instructor
Sahil Malik
4.2 Average rating
61 Reviews
1,510 Students
2 Courses
Developer, Trainer, Consultant, Author

Sahil Malik is a developer and instructor who has been teaching developers for over 15 years and has worked in 17 countries and 5 continents. As an author of more than 20 books, recipient of the Microsoft MVP award for more than 10 years, and a consultant and trainer he knows how to make tough concepts easy to grasp and apply.

Sahil founded Winsmarts, LLC which provides consulting and training services on Web technologies such as JavaScript, Angular, ASP.NET, SharePoint, Office 365 and iOS. Sahil speaks at conferences around the world and writes columns for various technical magazines. Follow Sahil on twitter at @sahilmalik