warum typescript? - berlin expert daysbed-con.org/2015/files/slides/warum-typescript.pdf · –from...
TRANSCRIPT
![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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/2.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/3.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/4.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/5.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/6.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/7.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/8.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/9.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/10.jpg)
![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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/12.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/13.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/14.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/15.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/16.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/17.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/18.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/19.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/20.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/21.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/22.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/23.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/24.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/25.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/26.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/27.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/28.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/29.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/30.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/31.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/32.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/33.jpg)
![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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/34.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/35.jpg)
> 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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/36.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/37.jpg)
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.”](https://reader030.vdocuments.us/reader030/viewer/2022040421/5e0fbb8f00edf462d627cabf/html5/thumbnails/38.jpg)
LINKS
typescriptlang.org
http://basarat.gitbooks.io/typescript/