17
Gil Fink Senior Consultant sparXys Building End-to-End Apps Using TypeScript

Building End-to-End Apps Using Typescript

Embed Size (px)

DESCRIPTION

Slide deck for NDC Oslo TypeScript session

Citation preview

Page 1: Building End-to-End Apps Using Typescript

Gil Fink Senior Consultant

sparXys

Building End-to-End

Apps Using TypeScript

Page 2: Building End-to-End Apps Using Typescript

Agenda

Introduction to TypeScript

Building a Simple App with TypeScript

Summary

Page 3: Building End-to-End Apps Using Typescript

Wait! JavaScript End to End?

"JavaScript is the assembly language of the

Web"

- Erik Meijer

“You can write large programs in JavaScript.

You just can’t maintain them”

- Anders Hejlsberg

Page 4: Building End-to-End Apps Using Typescript

The Alternatives

We have several alternatives:

Hard core JavaScript development

JavaScript preprocessors

CoffeeScript – http://coffeescript.org

Dart – http://dartlang.org

Clojurescript - https://github.com/clojure/clojurescript

Script# - http://scriptsharp.com/

Page 5: Building End-to-End Apps Using Typescript

What is TypeScript?

“TypeScript is a typed superset of JavaScript that compiles to plain JavaScript” ~typescriptlang.org

5

Page 6: Building End-to-End Apps Using Typescript

Demo

Hello TypeScript

Page 7: Building End-to-End Apps Using Typescript

TypeScript Key Features

7

Support standard

JavaScript code with static

typing

Encapsulation through classes

and modules

Support for constructors,

properties and functions

Interfaces and enums support

Lambda support => and

generics

Intellisense and syntax checking

Page 8: Building End-to-End Apps Using Typescript

From TypeScript to JavaScript

8

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.exe

Page 9: Building End-to-End Apps Using Typescript

TypeScript Type Annotations

You can add type annotations to variables and functions

9

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

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

return ‘hello’ + name;

}

Page 10: Building End-to-End Apps Using Typescript

Classes and Interfaces

You can define classes

You can define interfaces

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 11: Building End-to-End Apps Using Typescript

Modules

You define modules to wrap classes, interfaces and functionality

Use import and export keywords

module app {

export interface IGreeter {

greet(): void;

}

export class Greeter implements IGreeter {

greeting: string;

greet() {

console.log(this.greeting);

}

}

}

var app;

(function (app) {

var Greeter = (function () {

function Greeter() {

}

Greeter.prototype.greet = function () {

console.log(this.greeting);

};

return Greeter;

})();

app.Greeter = Greeter;

})(app || (app = {}));

Page 12: Building End-to-End Apps Using Typescript

Demo

Classes, Modules and Interfaces

Page 13: Building End-to-End Apps Using Typescript

Demo

Building a Simple End-to-End App with TypeScript

Page 14: Building End-to-End Apps Using Typescript

Questions

Page 15: Building End-to-End Apps Using Typescript

Summary

• Open source language that compiles into JavaScript

• Key features:

• Code encapsulation

• Maintainable code

• Tooling support

• Learn TypeScript today!

Page 16: Building End-to-End Apps Using Typescript

Resources

Session slide deck and demos –

TypeScript – http://www.typescriptlang.org

Definitely Typed – https://github.com/borisyankov/DefinitelyTyped

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

Follow me on Twitter – @gilfink

Page 17: Building End-to-End Apps Using Typescript

THANK YOU

Gil Fink @gilfink http://www.gilfink.net