Thanks to visit codestin.com
Credit goes to www.slideshare.net

TypeScript
Hello!
I am Hiten Pratap Singh
I am here because I love to dive into new
interesting things.
You can find me at:
https://github.com/hitenpratap/
https://hprog99.wordpress.com/
hiten@nexthoughts.com
Agenda
▷ Introduction
▷ Installation
▷ Why TypeScript?
▷ Features
▷ Comparison With TypeScript Alternatives
▷ Who Uses TypeScript?
▷ Conclusion
1.
Introduction
JavaScript that scales.
“TypeScript lets you write JavaScript the way
you really want to.
TypeScript is a typed superset of JavaScript
that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
Overview
▷ Syntax based on ECMAScript 4 &
ECMASCript 6 proposals
▷ TS is first and foremost a superset of JS
▷ Any regular Javascript is valid TypeScript
Code
“Microsoft's TypeScript may be the best of the
many JavaScript front ends. It seems to
generate the most attractive code.”
- Douglas Crockford
"CoffeeScript is to Ruby as TypeScript is to
Java/C#/C++."
- Luke Hoban
2.
Installation
How to get it setup?
How To Install
For more details check: https://www.typescriptlang.org/docs/tutorial.html
Via npm (the Node.js package manager)
By installing TypeScript’s Visual Studio plugins
Just download any appropriate Visual Studio from Microsoft site and you are all set to go.
You can also try Visual Studio Code IDE from https://code.visualstudio.com/ which is free, open
source and available for multi-platform.
3.
Why TypeScript?
Why everyone is using it more and more.
Main Goals of TypeScript
▷ Provide an optional type system for
JavaScript.
▷ Provide planned features from future
JavaScript editions to current JavaScript
engines
▷ Modular Development
4.
Features
What makes TypeScript super awesome
TypeScript Features
▷ Data Types Supported
▷ Optional Static Type Annotation
▷ Classes
▷ Interface
▷ Modules
▷ Arrow Expressions
▷ Type Assertions
▷ Ambient Declarations
▷ Source File Dependencies
Data Types
▷ Any
▷ Primitive
- Number
- Boolean
- String
- Void
- Null
- Undefined - Same as JS
▷ Array
▷ Enum
Any is used when it’s impossible to determine the type
Any
▷ Doesn’t have separate integers and float/double type. These all are
floating point values and get the type ‘number’
▷ boolean - true/false value
▷ string - both single/double quote can be used
▷ No separate char type
▷ void - is used in function type returning nothing
▷ null and undefined - functions as usual
Primitive
Array
By default, enums begin numbering their members starting at 0. You can
change this by manually setting the value of one its members.
Enum
Optional Types
Type Annotations/Checking
JavaScript
TypeScript
Type Inference
▷ TypeScript tries to infer types
▷ Four ways to variable declaration -
- Type and Value in one statement
- Type but no Value then Value will be undefined
- Value but on Type then the it will be of Any type but maybe be
inferred based on its value.
- Neither Value nor Type then Type will be Any and Value will
be undefined.
Classes
▷ Can implement interfaces
▷ Inheritance
▷ Instance methods/members
▷ Static methods/members
▷ Single constructor
▷ Default/Optional parameter
▷ ES6 class syntax
TypeScript Classes
TypeScript Classes Example
Inheritances
▷ Declared using interface keyword
▷ Like other TS features it’s design time features i.e. no extra code
would be emitted to resultant JS file
▷ Errors being shown when interface signature and implementation
doesn’t match.
TypeScript Interfaces
TypeScript Interfaces
Example
Modules
▷ Modules can be defined using module keyword
▷ A module can contains sub-modules, class, enums or interfaces. But
can’t directly contains functions.
▷ Modules can be nested(sub-modules).
▷ Classes and Interfaces can be exposed using export keyword.
TypeScript Modules
TypeScript Modules Example
Arrow Expressions
▷ Implicit return
▷ No braces for single expression
▷ Part of ES6
▷ Lexically scoped this
▷ You don't need to keep typing function
▷ It lexically captures the meaning of arguments
Arrow Expressions
Arrow Expressions Example
Type Assertions
TypeScript's type assertion are purely you telling the
compiler that you know about the types better than it
does, and that it should not second guess you.
Type Assertions
Type Assertions Example
Ambient Declarations
A major design goal of TypeScript was to make it
possible for you to safely and easily use existing
JavaScript libraries in TypeScript. TypeScript does this
by means of declaration.
Ambient Declarations
Source File Dependencies
▷ Can be done using reference keyword
▷ Must be the first statement of file
▷ Paths are relative to the current file
▷ Can also be done using tsconfig file
Source File Dependencies
Source File Dependencies Example
5.
Comparison with TS
Alternative
▷ Complete language + Runtime overhaul
▷ More features: generators, comprehensions, object literals etc
▷ Will take years before widely deployed
▷ No typing as of now(Maybe ES7)
TypeScript VS ES6 Harmony
▷ Also a superset to JavaScript
▷ More syntactic sugar, still dynamically typed
▷ Unlike TypeScript, JS is not valid CoffeeScript code
▷ It doesn’t track ECMAScript 6
TypeScript VS CoffeeScript
▷ Optionally typed
▷ A native VM
▷ Operator overloading
▷ ECMAScript Dart spec
▷ Completely different syntax and semantics than JS
TypeScript VS DART
6.
Who Uses TypeScript?
Companies use TypeScript
7.
Conclusion
Pros:
▷ High value, low cost improvement over JavaScript
▷ Safer and more modular
▷ Solid path to ECMAScript 6
Cons:
▷ Still need to know some JS quirks
▷ Current compiler slowish(Faster one is in development)
Conclusion
Thanks!
Any questions?
You can find me at:
https://github.com/hitenpratap/
https://hprog99.wordpress.com/
hiten@nexthoughts.com
References
▷ https://www.typescriptlang.org/docs/tutorial.html
▷ https://learnxinyminutes.com/docs/typescript/
▷ https://basarat.gitbooks.io/typescript/content/
▷ http://www.slideshare.net/SanderMak/typescript-coding-javascript-
without-the-pain
▷ http://www.slideshare.net/aniruddha.chakrabarti/typescript-44668095

TypeScript - An Introduction