Typescript

Vanwege de ontwikkelingen rondom mobile devices en de verschuiving van serverside naar clientside programmeren, zijn wij op zoek naar goede methodes om op overzichtelijke en (daardoor) herbruikbare wijze in javascript te programmeren. Voor de ontwikkeling van een TimeSheet applicatie hebben wij gebruik gemaakt van TypeScript.
TypeScript heeft niets met lettertypes te maken, het is een javascript library die van Microsoft afkomstig is en de mogelijkheden van het programmeren in javascript uitbreidt. Zo kun je op een C#-achtige, OO manier programmeren en wordt javascript toegankelijker voor backend programmeurs.

Typescript: Class definitie 

Figuur 1 - Class definitie

Typescript, minder foutgevoelig en meer programmeergemak

De javascript bestanden kunnen gemakkelijk en overzichtelijk in een folder structuur opgeslagen worden. Uiteindelijk wordt bij het builden van de applicatie de typescript code omgezet tot puur javascript. Dit betekent dat de code altijd herbruikbaar is en niet afhankelijk is van TypeScript of van de ondersteuning die browsers bieden.
Voor Visual Studio is er een plug-in beschikbaar voor TypeScript (deze is vanaf versie 2013 standaard meegeleverd), zodat refactoring en IntelliSense beschikbaar zijn. Dit verminderd de foutgevoeligheid en vergroot het programmeergemak.

Typescript: Enumeratie definitie 

Figuur 2 - Enumeratie definitie

IntelliSense 

Figuur 3 - IntelliSense (voorbeeld in combinatie met AngularJS)

Type definitions

Het programmeergemak is niet alleen beschikbaar voor de basis elementen (classes, datatypes). Er zijn zogenoemde Type Definitions beschikbaar. Een Type Definition maakt het mogelijk om externe libraries (zoals bijvoorbeeld jQuery) binnen TypeScript te gebruiken. Door het eenvoudigweg toevoegen van een referentie naar een dergelijke Type Definition is IntelliSense etc. dan ook direct beschikbaar.

Typedefinition JQuery 

Zie ook:

http://www.typescriptlang.org/

http://definitelytyped.org/

Het is fijn om te werken met TypeScript, zeker bij grotere front-end applicaties. Hoewel de combinatie met AngularJS uitdagingen oplevert is de leercurve van het werken met TypeScript stijl en de voordelen enorm.