Transcript
Page 1: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Herzlich Willkommen!Gleich geht es los.

Page 2: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TypeScript - Gut genug für große Anwendungen? Oder nur

Brückentechnologie für Ihr nächstes Projekt?

Treffpunkt „Semicolon“, 26.01.2016 Referent: Peter Hecker

Page 3: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Peter Hecker

• Seit 1986: „Entwickler, Trainer“

• Seit 1995: „Web-Entwicklung“

• Seit 2009: „Mobile WebApps“

• @phecker65

Page 4: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Themen

• TypeScript - Einstieg in TypeScript

• TypeScript und Anwendungen

• TypeScript - Fazit und Ausblick

Page 5: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Einstieg in TypeScript

Page 6: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

The Problem with JavaScripthttps://dzone.com/articles/you-can-write-large-programs

Page 7: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

„TypeScript: JavaScript Development at Application Scale“

http://blogs.msdn.com/b/somasegar/archive/2012/10/01/typescript-javascript-development-at-application-scale.aspx

Page 8: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

„Anders Hejlsberg: Introducing TypeScript“

https://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript

Page 9: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Page 10: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Angular 2: Built on TypeScripthttp://blogs.msdn.com/b/typescript/archive/2015/03/05/

angular-2-0-built-on-typescript.aspx

Page 11: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

https://www.google.de/trends/explore#q=typescript%2C%20angular%20typescript%2C%20coffeescript%2C%20ES6&date=1%2F2012%2049m&cmpt=q&tz=Etc%2FGMT-1

Page 12: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

http://githut.info/

Page 13: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Page 14: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Page 15: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

https://github.com/blog/2047-language-trends-on-github

Page 16: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

„So what is the outlook for 2016? I expect that Java, PHP

(with the new 7 release), JavaScript and Swift will be the top 10 winners for 2016.

Scala might gain a permanent top 20 position, whereas Rust, Clojure, Julia and TypeScript

will also move up considerably in the chart.“

Page 17: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

PLATTFORMEN

ECMAScript 5 (ES5) ECMAScript 6 / 2015 (ES6, ES2015)ECMAScript 3 (ES3) ECMAScript 7

(ES7)

STANDARDS

Transpiler: Traceur, Babel

CoffeeScript TypeScriptJavaScript ES6/ES7

SPRACHEN

TypeScript-Compiler

CoffeeScript-Compiler

Page 18: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

function User(id, firstName, lastName) { this.id = id; this.firstName = firstName; this.lastName = lastName;}

User.prototype = { getId: function() { return this.id; }, getFirstName: function() { return this.firstName; }, getLastName: function() { return this.lastName; }, setFirstName: function(firstName) { this.firstName = firstName; }, setLastName: function(lastName) { this.lastName = lastName; }};

JavaScript (ES5)

Page 19: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

class User constructor (@id, @firstName, @lastName) ->

getId: -> @id

getFirstName: -> @firstName

setFirstName: (@firstName) -> getLastName: -> @lastName

setLastName: (@lastName) ->

CoffeeScript

Page 20: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

class User { constructor(id, firstName, lastName) { this.id = id; this.firstName = firstName; this.lastName = lastName; } getId() { return this.id; } getFirstName() { return this.firstName; } setFirstName(firstName) { this.firstName = firstName; } getLastName() { return this.lastName; } setLastName(lastName) { this.lastName = lastName; }}

ES6 / ES2015

Page 21: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

class User { private id: number; private firstName: string; private lastName: string;

constructor(id: number, firstName: string, lastName: string) { this.id = id; this.firstName = firstName; this.lastName = lastName; } getId() { return this.id; } getFirstName(): string { return this.firstName; } setFirstName(firstName: string) { this.firstName = firstName; } getLastName(): string { return this.lastName; } setLastName(lastName: string) : void { this.lastName = lastName; }}

TypeScript

Page 22: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

„TypeScript lets you write JavaScript the way you really want to.“

http://www.typescriptlang.org/

Page 23: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Hauptmerkmale• Unterstützt Standard JavaScript Code (ES3, ES5, ES6)

• Bietet Statische Typisierung

• Kapselung durch Module und Klassen

• Unterstützt Konstruktoren, Eigenschaften, Funktionen

• Definition von Schnittstellen

• Lambdas oder Array-Funkionen

• Intellisense und Syntaxüberprüfung durch Werkzeuge

Page 24: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TypeScript Syntax• TypeScript ist eine Obermenge von JavaScript

• TypeScript folgt den JavaScript-Syntax-Regeln:

• {} definieren Codeblöcke

• Semicolon beenden Ausdrücke

• Spezielle Schlüsselworte

Page 25: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TypeScript-SchlüsselworteSchlüsselwort Beschreibung

class Container für Eigenschaften und Funktionenconstructor Initialisierung einer Klasse

exports Veröffentlicht einen Element extends Erweitert eine Klasse bzw. Schnittstelle

implements Implementiert eine Schnittstelleimports Importiert ein Modul

interface Definiert eine Schnittstelle module Container für Klassen und Code

public/private Sichtbarkeit von Elementen… Rest-Parameter=> Array-Syntax für Definitionen und Funktionen

<typeName> < > Konvertierung von Typen: Trennzeichen zwischen Variablen, Parameter, Typen

Page 26: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Code-HierarchieModul

KlasseSchnittstelle

FelderKonstruktor

EigenschaftenFunktionen

Page 27: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TypeScript - Werkzeuge

Page 28: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TypeScript Compiler

hello.ts > tsc hello.ts hello.js

JavaScript

> npm i -g typescript

Page 29: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Werkzeuge

• IDE’s

• Visual Studio, Eclipse, Netbeans, WebStorm

• Editoren

• Visual Studio Code, Atom, Sublime

Page 30: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Visual Studiohttps://www.visualstudio.com/

Page 31: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

VS Codehttps://code.visualstudio.com/

https://code.visualstudio.com/docs/languages/typescript

Page 32: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TypEcshttp://typecsdev.com/

Page 33: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Atomhttps://atom.io/

https://atom.io/packages/atom-typescript

Page 34: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Werkzeuge

• Develop

• TSLint

• TSD

Page 35: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TSLinthttp://palantir.github.io/tslint/

Page 36: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

TSDhttp://definitelytyped.org/tsd/

Page 37: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

DefinitelyTypedhttp://definitelytyped.org/

Page 38: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Werkzeuge

• Build

• tsc -watch *.ts (Poor Man’s Build)

• Grunt

• Gulp

Page 39: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Grunthttp://gruntjs.com/

https://www.npmjs.com/package/grunt-ts https://www.npmjs.com/package/grunt-typescript

Page 40: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Gulphttp://gulpjs.com/

https://www.npmjs.com/package/gulp-tsc https://www.npmjs.com/package/gulp-typescript

Page 41: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Demo…

Page 42: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

!

"

„Server“-App

# $

!

!

„Web“-App

„Mobile“-App

Page 43: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

„TypeScript PlayGround“http://www.typescriptlang.org/Playground

Page 44: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Fazit

Page 45: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Machen Sie TypeScript:• wenn Sie Java/C# lieben und JavaScript hassen

• wenn Sie gerne in einer IDE arbeiten wollen

• wenn Sie häufig in Ihrem JavaScript-Code „instanceOf“/„typeOf“ verwenden

• wenn Sie häufig Fehler aufgrund von fehlender Typenprüfung haben

• wenn Sie in Ihrem Team keine Konventionen haben

Page 46: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Machen Sie ES6/ES2015

• wenn Sie JavaScript lieben

• wenn Sie keine Typenüberprüfung benötigen bzw. nutzen wollen

• wenn Sie Teil der größten Software-Entwickler-Community und nicht einer kleinen Teilmenge sein wollen

Page 47: TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für Ihr nächstes Projekt?

Alle

Rec

hte

liege

n be

i Pet

er H

ecke

r. Ver

viel

fälti

gung

ist

nich

t er

laub

t.

Das war’s!


Top Related