TypeScript

23
TypeScript Orde in de chaos!

description

TypeScript. Orde in de chaos!. Over mij. Patrick Schmidt (Microsoft Certified Trainer) Trainer bij 4DotNet Mede- oprichter en architect BesteProduct.nl. Over 4DotNet. - PowerPoint PPT Presentation

Transcript of TypeScript

Page 1: TypeScript

TypeScriptOrde in de chaos!

Page 2: TypeScript

Over mij

• Patrick Schmidt (Microsoft Certified Trainer)• Trainer bij 4DotNet• Mede-oprichter en architect BesteProduct.nl

Page 3: TypeScript

Over 4DotNet

4DotNet is een specialist op het gebied van software development en het Microsoft .NET Framework.

Wij ondersteunen onze klanten met de volgende diensten:• Detachering (van .NET software ontwikkelaars)• Consultancy (advies over architectuur, project begeleiding)• Trainingen (officiële Microsoft Learning Partner)• Coaching (maatwerk training on-the-job)

Page 4: TypeScript

Programma

• Over JavaScript.• Wat is TypeScript?• JavaScript vs TypeScript• Asynchronous Module Definition (AMD)

Page 5: TypeScript

Over JavaScript

• Gereleased in 1996 onder de naam LiveScript• Prototype based scripting language• Weakly typed.• Zowel server side als client side.• Wordt steeds meer ingezet voor complexe

applicaties.

Page 6: TypeScript

Problemen met JavaScript

Page 7: TypeScript

TypeScript to the rescue• Brengt orde in de JavaScript chaos.• Typed superset op JavaScript (ECMAScript 6)• Werkt daarom prima samen met bestaande

JavaScriptcode• Wordt gecompileerd naar JavaScript (tsc.exe)• Volledig geïntegreerd in Visual Studio 2013

Page 8: TypeScript

Wat zijn de alternatieven?• CoffeeScript

– Momenteel de populairste– Eigen syntax– Integreert redelijk goed met bestaande JavaScript code– Lastig te debuggen

• Dart– Google initiatief– Eigen taal. Heeft veel weg van Java– Bestaande JavaScript code is moeilijk te integreren

Page 9: TypeScript

TypeScript vs JavaScript• Object Geörienteerd Programmeren• Modules• Interfaces• Bottom line: De uitkomst blijft JavaScript

Page 10: TypeScript

OOP en JavaScript• Kan eigenlijk niet, maar met enig kunst- en

vliegwerk wel te doen.• Encapsulation d.m.v. closures• Inheritance d.m.v. prototype chaining• Polymorphism… Alles lijkt wel polymorf in

JavaScript

Page 11: TypeScript

OOP en TypeScript?• Geeft het gevoel dat je object georienteerd

werkt.• Converteert naar standaard JavaScript

patronen.• We hebben:– Classen– Interfaces– Generics

Page 12: TypeScript

Demo

• OOP in JavaScript en TypeScript

Page 13: TypeScript

Modules en JavaScript• Ook hier geldt weer: Kan eigenlijk niet, maar

• met closures is veel te bereiken (IIFE’s)

Page 14: TypeScript

Modules in TypeScript• Twee soorten:– Inline– Externe (later meer hierover)

• Gebruikt het keyword module• Maakt onderdelen public dmv het keyword export

Page 15: TypeScript

Demo

• Modules in JavaScript en TypeScript

Page 16: TypeScript

Interfaces in JavaScript

Page 17: TypeScript

Interfaces in TypeScript• Is aanwezig, maar is in de gegenereerde

JavaScript niet terug te vinden.• Om conceptuele context te duiden.• Om anonieme objecten mee te documenteren• Handig voor intellisense.

Page 18: TypeScript

Demo

• Interfaces in TypeScript

Page 19: TypeScript

Asynchronous Module Definition• Laadt modules asynchroon in• Gebruikt RequireJS• tsc.exe –module amd module.ts• In Visual Studio 2013 eenvoudig de module

blokken weglaten (worden gegenereerd volgens RequireJS standaarden)

Page 20: TypeScript

Demo

• AMD in action

Page 21: TypeScript

Tot slot

• JavaScript wordt als taal steeds vaker ingezet. Ook buiten browsers. (NodeJS, Windows Store Apps)

• TypeScript neemt complexiteiten JavaScript weg.• Groot voordeel TypeScript: Is een uitbreiding op

JavaScript (anticipeert op toekomstige specificities)• Met AMD een zeer krachtige oplossing voor

uitgebreide en complexe applicaties.

Page 23: TypeScript

Vragen?

• Neem voor meer informatie over deze sessie contact op met 4DotNet op 0522-241448 of stuur een e-mail naar [email protected]

• Houdt ook zeker onze Events @4DotNet website in de gaten: http://events.4dotnet.nl