Syntactic Superset

of JavaScript by

Meaning,

All JavaScript code is also valid TypeScript

While also,

adding many missing features

JavaScript with superpowers

— Anders Hejlsberg

author of TurboPascal

architect of Delphi and C#

core developer of TypeScript

But at the end,

compiles back to plain JavaScript

Why bother then?..

well, it actually eliminates the cost and compatibility problems

and it's Open Source

and more important, it follows Open Development

After all, even Steve Jobs

was against proprietary

platforms.

despite the irony...

Early Stages

Things were a lot different when the journey began around 2011

was the only thing

you would need to know for client-side development

K

CoffeeScript

Because people were so lazy about {curly braces}

It's indeed very hard to draw though

kind of made sense

at the time but never managed to become a superstar

Internet Explorer 8

was being used by nearly the half of all internet users

JavaScript engine race

different engines were getting mature

Which led to JS becoming fast enough

to be considered for larger apps

But, JS never intended for large apps

it didn't have classes, modules, types which was making really hard to maintain big projects

With all these in mind,

TypeScript brought in a set of new features to improve the situation.

Types

and why it's a big deal

  • Implies intent
  • Prevents a lot of simple errors
  • Encourages API driven development

Type Declarations

a huge community driven project to support as many libraries

Compiler as a Service

tsserver makes it incredibly easy for IDE developers to support TypeScript

Strict Mode

Tony Hoare: I call it my billion-dollar mistake.

Interfaces & Generics

Opens up the possibility of using numerous design patterns

Adoption

Visual Studio Code

developed almost entirely in TypeScript

Angular 2

Google endorses TypeScript for the development of Angular platform

Dependency Injection

InversifyJS

A powerful and lightweight inversion of control container

ReactiveX

asynchronous programming
with observable streams

Thanks a lot for listening!

find me on github.com/koraytaylan

TypeScript Introduction

By Koray Taylan Davgana

TypeScript Introduction

  • 617