end to-end apps with type script

23
End-to-end Apps with TypeScript Gil Fink CEO and Senior Consultant, sparXys

Upload: gil-fink

Post on 12-Apr-2017

125 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: End to-end apps with type script

End-to-end Apps with TypeScript

Gil Fink

CEO and Senior Consultant, sparXys

Page 2: End to-end apps with type script

About Me • sparXys CEO and Senior consultant

• Microsoft MVP in the last 8 years

• Pro Single Page Application Development (Apress) co-

author

• 4 Microsoft Official Courses (MOCs) co-author

• GDG Rishon and AngularUP co-organizer

Page 3: End to-end apps with type script

Agenda • The why

• TypeScript syntax and language features

• Building a simple end-to-end app with TypeScript

• Summary

Page 4: End to-end apps with type script

"JavaScript is the assembly language of the Web"

Erik Meijer

Page 5: End to-end apps with type script

“You can write large programs in JavaScript. You

just can’t maintain them”

Anders Hejlsberg

Page 6: End to-end apps with type script

Let’s Be Serious • JavaScript is really a powerful language:

o Functional

o Dynamic

o Can run everywhere

• Huge community

• Big eco-system

• Tools – IDEs, debuggers, test tools and etc.

Page 7: End to-end apps with type script

What is TypeScript? “TypeScript is a typed superset of JavaScript that compiles to

plain JavaScript” ~typescriptlang.org

Page 8: End to-end apps with type script

Hello TypeScript Demo

Page 9: End to-end apps with type script

Some TypeScript Key Features

Support standard

JavaScript code with

static typing

Encapsulation through classes

and modules

Support for constructors,

properties and functions

Interfaces and enums support

Lambda and generics support

Intellisense and syntax checking

Page 10: End to-end apps with type script

• Modules

• Classes

• Arrow functions

• Default parameters

• Destructuring

• Spread and rest

• Let and const

• for...of

• Object literal

methods

• Shorthand properties

• Computed

properties

• Octal / binary literals

• Symbols

• Template strings

Features from the near Future of

the Web (ES2015/6), Today

Choose your compilation scenario.

It is up to you!

Page 11: End to-end apps with type script

From TypeScript to JavaScript

class Greeter {

greeting: string;

constructor(message: string) {

this.greeting = message;

}

greet() {

return “Hi," + this.greeting;

}

}

TypeScript Code JavaScript Code

TypeScript Compiler

var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return “Hi," + this.greeting; }; return Greeter; })();

tsc.js

Page 12: End to-end apps with type script

tsconfig.json • Enables to configure the compiler options:

o Target language (ES3, ES5, ES6)

o Module system (AMD, ES6, CommonJS and etc.)

o Source map generation

o Remove comments when compiling

o And more

Page 13: End to-end apps with type script

tsconfig.json Demo

Page 14: End to-end apps with type script

Some Important Side Notes

• All JavaScript code is TypeScript code o Simply copy and paste

• All JavaScript libraries work with TypeScript o You will need a declaration file to work with the library

Page 15: End to-end apps with type script

TypeScript Type Annotations

• You can add type annotations to variables and

functions

• If not added, types are inferred by their context

var str: string = ‘hello’; // str is annotated as string

function foo(name: string) : string { // parameter and function annotated

return ‘hello’ + name;

}

Page 16: End to-end apps with type script

Classes and Interfaces • You can define classes (same as in ES2015)

• You can define interfaces o And implement them later

interface IGreeter {

greet(): void;

}

class Greeter implements IGreeter {

greeting: string;

greet() {

console.log(this.greeting);

}

}

var Greeter = (function () {

function Greeter() {

}

Greeter.prototype.greet = function () {

console.log(this.greeting);

};

return Greeter;

})();

Page 17: End to-end apps with type script

Modules • Uses ES2015 modules syntax

export interface IGreeter {

greet(): void;

}

export class Greeter implements IGreeter {

greeting: string;

greet() {

console.log(this.greeting);

}

}

var Greeter = (function () {

function Greeter() {

}

Greeter.prototype.greet = function () {

console.log(this.greeting);

};

return Greeter;

}());

exports.Greeter = Greeter;

Page 18: End to-end apps with type script

Types, Classes, Modules and Interfaces

Demo

Page 19: End to-end apps with type script

Building a Simple End-to-End App with TypeScript

Demo

Page 20: End to-end apps with type script

TypeScript Versions • TypeScript 1.0

• TypeScript 2.0

• Current version: TypeScript 2.2 (since last week )

Page 21: End to-end apps with type script

Summary • Open source language that compiles into

JavaScript

• Key features: • Code encapsulation

• Maintainable code

• Tooling support

• Learn TypeScript today!

Page 22: End to-end apps with type script

Resources • TypeScript – http://www.typescriptlang.org

• TypeScript Source Code -

https://github.com/Microsoft/TypeScript

• My Website – http://www.gilfink.net

• Follow me on Twitter – @gilfink

Page 23: End to-end apps with type script

Thank You!