SlideShare a Scribd company logo
1 of 40
TypeScript
DevSum 2013
Micael Herkommer
Why should I care of yet another language?
This session shows what pains are addressed
and what you can benefit from, with a very
small investment of your time and skill set.
Anyone using JavaScript today and is getting
frustrated in trying to keep order in an ever
growing heap of JavaScript will love the simple
idea behind TypeScript!
Agenda
• JavaScript?
• Server-side vs Client-side
• Frameworks
• Ordning och reda med TypeScript
• Kom igång med TypeScript
• Varför behöver jag TypeScript, på riktigt?
• Get going, it is great fun!
Micael Herkommer
• Webbutveckling sedan klassisk ASP
• Backend och integrationsfokus
• WPF
• ALM/TFS
• Tidigare JavaScript-motståndare
Utveckling, mest Webb
• Kort tillbakablick
– ASP, ASP.NET, MVC, MVVM
• Mönster och ramverk
• JScript
• JavaScript är ingen ny fågel, utan en Fenix!
• Behov av snabb repsons och flexibel UX
• SPA (Single Page Applications)
Frameworks
• jQuery, jQueryUI, jQueryMobile
• Node.js (skalbar webbserver)
– SignalR (skalbar webbserver, C#)
• Knockout (MVVM)
• AngularJS (SPA MVC)
• Backbone (SPA MVP JSON)
• MongoDB (NoSQL)
• D3 (Data-Driven-Documents)
• CommonJS
• RequireJS (Module loader)
• AMD (Asynchronous Module Definition)
• Modernizr (feature detection)
• ExpressJS (MVC Server-side)
och många många fler…
Backend vs Frontend Developers
• Normally don’t mix and play
• Flytande gränser idag
• jQuery banade väg
• Kundernas krav på bättre UX
• Svårt att lyckas utifrån endast Server-side
JavaScript to the rescue
• Alla kan, alla kan lära
• Funkar i alla webbläsare och annat
men...
• Dynamiskt och okompilerat
• Så lätt att komma igång och se resultat snabbt
• Oerhört svårt att underhålla över tid
Nästa version av JavaScript…
• Många vill ersätta JavaScript
– CoffeeScript
– DART (Google)
• Allmän trend
– LESS, SASS m.fl. (pre-compilers)
• ECMAScript (EC3, EC5 och EC6)
– Open Standard
TypeScript gör entre hösten 2012
• Microsoft upplever Pain
• Exempelvis TS2012 och Office Live 365
• Eric Gamma, Anders Hejlsberg & team
• Hantera 100K+ rader av JavaScript (TFS2012)
• Dogfooding
• Fortfarande i Beta version
• Open Source (CodePlex)
TypeScript Definition:
• TypeScript is a language for application-scale
JavaScript development.
• TypeScript is a typed superset of JavaScript
that compiles to plain JavaScript.
• Any browser. Any host. Any OS. Open Source.
Vad gör TypeScript?
• Accepterar all JavaScript
• Kompilerar till ren JavaScript
• Assisterar oss att skriva bättre JavaScript
Vad gör TypeScript INTE?
• Lägger inte till någon egen tolkning eller
annan typ av meta-data eller kod, bara ren
JavaScript.
Så varför använda TypeScript?
• Mindre JavaScript kod ger ingen större fördel
att använda TypeScript
• Större projekt och många kodrader med
JavaScript hjälper TypeScript att organisera
och hitta feltypningar innan runtime
• Många av oss kommer från C# och liknande
OO bakgrund och behöver nu behärska
JavaScript, TypeScript gör övergången enklare
och stabilare
Invändningar
• Jo, visst men vi har liknande verktyg idag:
– jsLint
– jsHint
– Google Linter (Closure Compiler)
– m.fl.
Stora fördelen (enligt mig)
• Hålla ordning på alla JavaScript-ramverk är klurigt
• TypeScript ger mig Intellisense i VS2012 och även
andra IDE (TS LanguageService)
– Sublime Text 2
– WebStorm
– PHPStorm
– Emacs
– VIM
– WebMatrix
– m.fl.
• Modulhantering och dependency
Hur?
• Kommer du ihåg den gamla TLB filerna?
• Type Definitions (*.d.ts)
– Jmf. header files i C/C++
• jQuery och Node.js
• Importera övrigt du behöver via:
– NuGet
– https://github.com/borisyankov/DefinitelyTyped
Installera TypeScript
• Ladda ner: http://www.microsoft.com/en-
us/download/details.aspx?id=34790
• VS2012 PlugIn
• NPM, Node Package Manager
• Övriga IDE stöd
TypeScript features
• Optional Type System (Type Inference)
• Modules
• Interfaces
• Classes
• Inheritance
• Lambda (Arrow Syntax)
• Static Checking
• Code Re-factoring
Type Inference
• Kompilatorn använder type inference för att
automatiskt hitta rätt datatyp att använda, om
det inte lyckas används JavaScript any som
default.
Kompilatorn
• Genererar en helt vanlig *.js fil
• Option: generera type def file *.d.ts
• Default EC5
• Option EC3
OBS: TypeScript använder sig av några EC6
(ECMAScript) “features proposed” som ännu inte är
godkända.
Kodexempel:
• Variabler och deklarationer
• Intellisense och Type Inference
• Frameworks
• Lambda
• Klasser, arv och konstruktor
• Funktioner
• Interface
• Moduler (externa och interna)
Programstruktur
• Source file structure
– implementation
• module elements
– module
» modules
• statement
• function declaration
• class declaration
• interface declaration
• module declaration
• import declaration
• export declaration
• ambient declaration
– declaration
Variabler och deklarationer
• Type Decoration
• Annotations
• Optional (default is any)
var s
var s: string
Intellisense och Type Inference
Frameworks
• Type Definitions
Lambda =>
• Scope: this
• Slipper använda function keyword
• Snyggare (kortare) callbacks och inline
Klasser, arv och konstruktor
• Slipp skapa en massa JavaScript kod för att
hålla reda på prototyp
• Constructor
• Super
• Scope
Funktioner
Interface
• Definiera komplexa typer enkelt
• Få stöd av IDE Intellisense
• Implements
• Funkar fint på alla typer
Moduler (externa och interna)
• Jmf. C# Namespaces
• Module = sets named internal module
• Export = accessable outside the module
file4.ts
Dependencies
(AMD, CommonJS, RequireJS)
• Moduler kan extendas, delas mellan filer och
refereras
/// <reference path=“xxx.ts” />
• Följer AMD conventions
• Använd Require för att implementera AMD
• Använd CommonJS för att exportera hela
moduler till en annan modul
• Skapa Dependency Chains
Sammanfattning
• TypeScript är JavaScript för C# utvecklare!
• JavaScript är överallt och oerhört kraftfullt
• C# strukturerat tänkande ger resultat i TS
• En underbar värld av fria paket och
ramverk, skapade av utvecklare som irriterat
sig på väldigt specifika problem en längre tid

• Dive in, enjoy!
Kom igång
Installera via Node NPM
• $ sudo npm install -g typescript
Ladda ner TypeScript för VS2012
• http://www.microsoft.com/en-
us/download/details.aspx?id=34790
Rekommenderade länkar
TypeScript offical home page, including specification, samples and play area
• http://www.typescriptlang.org/
TypeScript in four parts by John Papa and Dan Wahlin
• http://www.johnpapa.net/typescriptpost1/
• http://www.johnpapa.net/typescriptpost2/
• http://www.johnpapa.net/typescriptpost3/
• http://www.johnpapa.net/typescriptpost4/
AngularJS and TypeScript by David Iffland
• http://notebookheavy.com/2013/05/22/angularjs-and-typescript/
Knockout.js and TypeScript
• http://notebookheavy.com/2012/10/03/typescript-and-knockout-computed/
Knockout.js Channel 9 by Steve Sanderson
• http://channel9.msdn.com/Events/MIX/MIX11/FRM08
Intro to Node.js by Ryan Dahl
• http://www.youtube.com/watch?v=jo_B4LTHi3I
Interesting point of view from Nicholas Zakas
• http://www.nczonline.net/blog/2012/10/04/thoughts-on-typescript/
TypeScript definition files
• https://github.com/borisyankov/DefinitelyTyped
Tack för din tid!
Happy DevSum 2013!
@herkommer

More Related Content

Viewers also liked

Double page spread stages powerpoint
Double page spread stages powerpointDouble page spread stages powerpoint
Double page spread stages powerpointkittylantos
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptMSDEVMTL
 
Typescript - a JS superset
Typescript - a JS supersetTypescript - a JS superset
Typescript - a JS supersetTyrone Allen
 
Getting Started with TypeScript
Getting Started with TypeScriptGetting Started with TypeScript
Getting Started with TypeScriptGil Fink
 
Typescript in 30mins
Typescript in 30mins Typescript in 30mins
Typescript in 30mins Udaya Kumar
 
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutChristian Heilmann
 
Introducing type script
Introducing type scriptIntroducing type script
Introducing type scriptRemo Jansen
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript IntroductionDmitry Sheiko
 
Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionMoscowJS
 
TypeScript Seminar
TypeScript SeminarTypeScript Seminar
TypeScript SeminarHaim Michael
 
Typescript: JS code just got better!
Typescript: JS code just got better!Typescript: JS code just got better!
Typescript: JS code just got better!amit bezalel
 
Introduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston LeviIntroduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston LeviWinston Levi
 

Viewers also liked (13)

Double page spread stages powerpoint
Double page spread stages powerpointDouble page spread stages powerpoint
Double page spread stages powerpoint
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
 
Typescript - a JS superset
Typescript - a JS supersetTypescript - a JS superset
Typescript - a JS superset
 
Getting Started with TypeScript
Getting Started with TypeScriptGetting Started with TypeScript
Getting Started with TypeScript
 
Typescript in 30mins
Typescript in 30mins Typescript in 30mins
Typescript in 30mins
 
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
 
Introducing type script
Introducing type scriptIntroducing type script
Introducing type script
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
 
Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
 
TypeScript Seminar
TypeScript SeminarTypeScript Seminar
TypeScript Seminar
 
Typescript: JS code just got better!
Typescript: JS code just got better!Typescript: JS code just got better!
Typescript: JS code just got better!
 
Introduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston LeviIntroduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston Levi
 

Similar to TypeScript DevSum 2013

HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)Anton Tibblin
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonAnton Tibblin
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonAnton Tibblin
 
HT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptHT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptAnton Tibblin
 
HT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptHT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptAnton Tibblin
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptAnton Tibblin
 
Inlämningsuppg6
Inlämningsuppg6Inlämningsuppg6
Inlämningsuppg6robbannn
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringAnton Tibblin
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Creuna Sverige
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingAnton Tibblin
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.ADDQ
 
Xpages för utvecklare
Xpages för utvecklareXpages för utvecklare
Xpages för utvecklareThomas Adrian
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkAnton Tibblin
 
HT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekHT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekAnton Tibblin
 
HT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksHT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksAnton Tibblin
 
HT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotekHT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotekAnton Tibblin
 
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkVälj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkCreuna Sverige
 

Similar to TypeScript DevSum 2013 (20)

HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till Python
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till Python
 
HT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptHT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScript
 
HT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptHT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScript
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 
Inlämningsuppg6
Inlämningsuppg6Inlämningsuppg6
Inlämningsuppg6
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till Programmering
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programming
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.
 
Xpages för utvecklare
Xpages för utvecklareXpages för utvecklare
Xpages för utvecklare
 
FullStackDeveloper
FullStackDeveloperFullStackDeveloper
FullStackDeveloper
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & Webbramverk
 
HT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekHT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotek
 
HT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksHT18 - DA156A - Frameworks
HT18 - DA156A - Frameworks
 
HT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotekHT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotek
 
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkVälj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
 
Tobbe Eklöv
Tobbe EklövTobbe Eklöv
Tobbe Eklöv
 

TypeScript DevSum 2013

  • 2. Why should I care of yet another language? This session shows what pains are addressed and what you can benefit from, with a very small investment of your time and skill set. Anyone using JavaScript today and is getting frustrated in trying to keep order in an ever growing heap of JavaScript will love the simple idea behind TypeScript!
  • 3. Agenda • JavaScript? • Server-side vs Client-side • Frameworks • Ordning och reda med TypeScript • Kom igång med TypeScript • Varför behöver jag TypeScript, på riktigt? • Get going, it is great fun!
  • 4. Micael Herkommer • Webbutveckling sedan klassisk ASP • Backend och integrationsfokus • WPF • ALM/TFS • Tidigare JavaScript-motståndare
  • 5. Utveckling, mest Webb • Kort tillbakablick – ASP, ASP.NET, MVC, MVVM • Mönster och ramverk • JScript • JavaScript är ingen ny fågel, utan en Fenix! • Behov av snabb repsons och flexibel UX • SPA (Single Page Applications)
  • 6. Frameworks • jQuery, jQueryUI, jQueryMobile • Node.js (skalbar webbserver) – SignalR (skalbar webbserver, C#) • Knockout (MVVM) • AngularJS (SPA MVC) • Backbone (SPA MVP JSON) • MongoDB (NoSQL) • D3 (Data-Driven-Documents)
  • 7. • CommonJS • RequireJS (Module loader) • AMD (Asynchronous Module Definition) • Modernizr (feature detection) • ExpressJS (MVC Server-side) och många många fler…
  • 8. Backend vs Frontend Developers • Normally don’t mix and play • Flytande gränser idag • jQuery banade väg • Kundernas krav på bättre UX • Svårt att lyckas utifrån endast Server-side
  • 9. JavaScript to the rescue • Alla kan, alla kan lära • Funkar i alla webbläsare och annat men... • Dynamiskt och okompilerat • Så lätt att komma igång och se resultat snabbt • Oerhört svårt att underhålla över tid
  • 10. Nästa version av JavaScript… • Många vill ersätta JavaScript – CoffeeScript – DART (Google) • Allmän trend – LESS, SASS m.fl. (pre-compilers) • ECMAScript (EC3, EC5 och EC6) – Open Standard
  • 11. TypeScript gör entre hösten 2012 • Microsoft upplever Pain • Exempelvis TS2012 och Office Live 365 • Eric Gamma, Anders Hejlsberg & team • Hantera 100K+ rader av JavaScript (TFS2012) • Dogfooding • Fortfarande i Beta version • Open Source (CodePlex)
  • 12. TypeScript Definition: • TypeScript is a language for application-scale JavaScript development. • TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. • Any browser. Any host. Any OS. Open Source.
  • 13. Vad gör TypeScript? • Accepterar all JavaScript • Kompilerar till ren JavaScript • Assisterar oss att skriva bättre JavaScript
  • 14. Vad gör TypeScript INTE? • Lägger inte till någon egen tolkning eller annan typ av meta-data eller kod, bara ren JavaScript.
  • 15. Så varför använda TypeScript? • Mindre JavaScript kod ger ingen större fördel att använda TypeScript • Större projekt och många kodrader med JavaScript hjälper TypeScript att organisera och hitta feltypningar innan runtime • Många av oss kommer från C# och liknande OO bakgrund och behöver nu behärska JavaScript, TypeScript gör övergången enklare och stabilare
  • 16. Invändningar • Jo, visst men vi har liknande verktyg idag: – jsLint – jsHint – Google Linter (Closure Compiler) – m.fl.
  • 17. Stora fördelen (enligt mig) • Hålla ordning på alla JavaScript-ramverk är klurigt • TypeScript ger mig Intellisense i VS2012 och även andra IDE (TS LanguageService) – Sublime Text 2 – WebStorm – PHPStorm – Emacs – VIM – WebMatrix – m.fl. • Modulhantering och dependency
  • 18. Hur? • Kommer du ihåg den gamla TLB filerna? • Type Definitions (*.d.ts) – Jmf. header files i C/C++ • jQuery och Node.js • Importera övrigt du behöver via: – NuGet – https://github.com/borisyankov/DefinitelyTyped
  • 19. Installera TypeScript • Ladda ner: http://www.microsoft.com/en- us/download/details.aspx?id=34790 • VS2012 PlugIn • NPM, Node Package Manager • Övriga IDE stöd
  • 20. TypeScript features • Optional Type System (Type Inference) • Modules • Interfaces • Classes • Inheritance • Lambda (Arrow Syntax) • Static Checking • Code Re-factoring
  • 21. Type Inference • Kompilatorn använder type inference för att automatiskt hitta rätt datatyp att använda, om det inte lyckas används JavaScript any som default.
  • 22. Kompilatorn • Genererar en helt vanlig *.js fil • Option: generera type def file *.d.ts • Default EC5 • Option EC3 OBS: TypeScript använder sig av några EC6 (ECMAScript) “features proposed” som ännu inte är godkända.
  • 23. Kodexempel: • Variabler och deklarationer • Intellisense och Type Inference • Frameworks • Lambda • Klasser, arv och konstruktor • Funktioner • Interface • Moduler (externa och interna)
  • 24. Programstruktur • Source file structure – implementation • module elements – module » modules • statement • function declaration • class declaration • interface declaration • module declaration • import declaration • export declaration • ambient declaration – declaration
  • 25. Variabler och deklarationer • Type Decoration • Annotations • Optional (default is any) var s var s: string
  • 28. Lambda => • Scope: this • Slipper använda function keyword • Snyggare (kortare) callbacks och inline
  • 29. Klasser, arv och konstruktor • Slipp skapa en massa JavaScript kod för att hålla reda på prototyp • Constructor • Super • Scope
  • 30.
  • 32. Interface • Definiera komplexa typer enkelt • Få stöd av IDE Intellisense • Implements • Funkar fint på alla typer
  • 33.
  • 34. Moduler (externa och interna) • Jmf. C# Namespaces • Module = sets named internal module • Export = accessable outside the module
  • 36. Dependencies (AMD, CommonJS, RequireJS) • Moduler kan extendas, delas mellan filer och refereras /// <reference path=“xxx.ts” /> • Följer AMD conventions • Använd Require för att implementera AMD • Använd CommonJS för att exportera hela moduler till en annan modul • Skapa Dependency Chains
  • 37. Sammanfattning • TypeScript är JavaScript för C# utvecklare! • JavaScript är överallt och oerhört kraftfullt • C# strukturerat tänkande ger resultat i TS • En underbar värld av fria paket och ramverk, skapade av utvecklare som irriterat sig på väldigt specifika problem en längre tid  • Dive in, enjoy!
  • 38. Kom igång Installera via Node NPM • $ sudo npm install -g typescript Ladda ner TypeScript för VS2012 • http://www.microsoft.com/en- us/download/details.aspx?id=34790
  • 39. Rekommenderade länkar TypeScript offical home page, including specification, samples and play area • http://www.typescriptlang.org/ TypeScript in four parts by John Papa and Dan Wahlin • http://www.johnpapa.net/typescriptpost1/ • http://www.johnpapa.net/typescriptpost2/ • http://www.johnpapa.net/typescriptpost3/ • http://www.johnpapa.net/typescriptpost4/ AngularJS and TypeScript by David Iffland • http://notebookheavy.com/2013/05/22/angularjs-and-typescript/ Knockout.js and TypeScript • http://notebookheavy.com/2012/10/03/typescript-and-knockout-computed/ Knockout.js Channel 9 by Steve Sanderson • http://channel9.msdn.com/Events/MIX/MIX11/FRM08 Intro to Node.js by Ryan Dahl • http://www.youtube.com/watch?v=jo_B4LTHi3I Interesting point of view from Nicholas Zakas • http://www.nczonline.net/blog/2012/10/04/thoughts-on-typescript/ TypeScript definition files • https://github.com/borisyankov/DefinitelyTyped
  • 40. Tack för din tid! Happy DevSum 2013! @herkommer