38
WARUM TYPESCRIPT ? JOSHY CYRIAC @IRRWITZ FINEBRAIN.COM

WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

WARUM TYPESCRIPT?

JOSHY CYRIAC @IRRWITZ

FINEBRAIN.COM

Page 2: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

UMFRAGE

Page 3: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

ANFANG

Java-Land

JS-Land

Page 4: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

TYPESCRIPT LÖSUNGEN FÜR 2 JS PROBLEME

Page 5: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

PROBLEM EINS

Page 6: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

module.exports = function extract(data, topic) { … }

“article.js”

Page 7: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

var article=require(‘article’); var item = require(‘ item’);

article.extract(data, ‘news’); item.extract(data, 12);

Page 8: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

PROBLEM ZWEI

Page 9: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

function extract( data, topic ) { … }

Page 10: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”
Page 11: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

–from typescriptlang.org

“Any browser. Any host.

Any OS. Open Source.”

Page 12: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

JS

TSTS is a TYPED superset of JS

Page 13: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

TS Files

TS Compiler

JS Files

Page 14: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

PROBLEM EINS

Page 15: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

module.exports = function extract(data, topic) { … }

“article.js”

Page 16: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

OPTIONAL TYPE

SYSTEM

Page 17: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

var answer: number = 4; var n: number[] = [1, 2, 3]; var city: string = “Berlin”; enum Color { Red, Green, Blue };

“basic.ts”

Page 18: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

var answer = 4; var n = [1, 2, 3]; var city = “Berlin”; var Color; (function (Color) { … }

“basic.js”

Page 19: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

var foo: any; var foos: any[]; function log(msg): void { … } var fAdd: (x: number, y: number)=>number;

“func.ts”

Page 20: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

var foo; var foos; function log(msg) { … } var fAdd;

“func.js”

Page 21: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

FIND REFERENCEsrc/services/extractor.ts function extract(data: Article[], topic: string)

src/services/storer.ts ArticleExtractor.extract(data, defaultTopic)

Page 22: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

PROBLEM ZWEI

Page 23: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

function extract( data, topic ) { … }

Page 24: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

INTERFACES

Page 25: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

interface Article { _id: string; url: string; date?: Date; title: string; text: string;

}

Page 26: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

function extract( data: Article[], topic: string) { … }

Page 27: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

extract(articles, “bar”);“ ✔ extract(“foo”, “bar”); ✗

Argument of type “string” is not assignable to parameter of type Article[]

^^^^^

Page 28: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

MORE STUFF

Page 29: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

Type Inference

Classes

ModulesDefault parameters

Optional parameters

Generics

Union Types

Intersection Types

Page 30: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

INTEGRATING 3RD PARTY

LIBS / FRAMEWORKS

Page 31: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

DefinitelyTyped

Page 32: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

EDITOR SUPPORT

Page 33: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”
Page 34: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

MIGRATION

Page 35: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

> npm install -g typescript

> mv *.js *.ts

> tsc -w -m commonjs server.ts

Page 36: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

SUMMARY

Page 37: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

PRO CONTRA

Optional TYPE SYSTEM

Compiles to plain JS

Compile Step

ES5/(ES6) compatible

Page 38: WARUM TYPESCRIPT? - Berlin Expert Daysbed-con.org/2015/files/slides/Warum-TypeScript.pdf · –from typescriptlang.org “Any browser. Any host. Any OS. Open Source.”

LINKS

typescriptlang.org

http://basarat.gitbooks.io/typescript/