Microsoft geeft zijn uitgebreide JavaScript-variant TypeScript vrij onder een opensourcelicentie. TypeScript voegt ondersteuning voor optionele datatypen, klassen en modules toe aan de scripttaal, en werkt in bestaande JS-omgevingen.
Microsoft heeft een uitgebreide variant van JavaScript uitgebracht, genaamd TypeScript. Volgens de softwaregigant lost TypeScript een aantal problemen met JavaScript op, waardoor de scripttaal beter gebruikt kan worden voor applicatieontwikkeling. Zo voegt TypeScript ondersteuning toe voor optionele datatypen, klassen en modules.
TypeScript is geen nieuwe taal, maar zogeheten syntactische suiker, die het programmeren voor een ontwikkelaar makkelijker maakt. Hiermee lijkt het op CoffeeScript en Google Dart, die ook de mogelijkheden van JavaScript uitbreiden. De compiler maakt van TypeScript gewone JavaScript-code, die binnen browsers, Node.js en andere JavaScript-omgevingen zal werken. Verder zijn bestaande JavaScript-libraries aan te roepen vanuit TypeScript-code.
De specificaties van TypeScript zijn vrijgegeven onder de Open Web Foundation, terwijl Microsoft de broncode van de compiler beschikbaar heeft gesteld onder de Apache 2.0-licentie. Voor Visual Studio 2012 is er een plug-in, zodat features als refactoring en IntelliSense voor TypeScript-code beschikbaar zijn.

[Reactie gewijzigd door vstrien op dinsdag 2 oktober 2012 14:55]
Hangt af van:Ik ben geen programmeur, maar is het niet inefficient dat Typescript 20 regels code nodig heeft terwijl Javascript er 'maar' 16 nodig heeft?? (Ok, Typescript heeft 3 lege regels erin zitten.. maar toch)
Fout, in Windows neemt een lege regel twee keer zoveel opslag in als een spatie.Een CR neemt net zo veel opslag of verwerkingstijd in beslag als een spatie.
[Reactie gewijzigd door Redsandro op dinsdag 2 oktober 2012 19:25]
python programmeurs zullen hier anders over denken, zie ook: http://en.wikipedia.org/wiki/Off-side_rule (met een lijst van andere talen waar dit ook (deels) voor opgaat)Sowieso hebben enters of spaties geen enkele waarde voor een compiler, die is net zo tevreden met alles op 1 regel aan elkaar geplakt
[Reactie gewijzigd door xiD op dinsdag 2 oktober 2012 14:42]
[Reactie gewijzigd door dvz89 op dinsdag 2 oktober 2012 14:45]
http://www.joelonsoftware.com/articles/fog0000000069.htmlIt’s harder to read code than to write it.
TypeScript compileert naar JavaScript, dus het eindresultaat is 100% compatible (of zou dat tenminste moeten zijn).... ik weet niet of TypeScript backwards compatible is met JavaScript
[Reactie gewijzigd door 4np op zaterdag 6 oktober 2012 23:19]
Dan begrijp je niet wat typesafety überhaupt voor voordeel heeft. Het stelt je in staat bepaalde fouten veel sneller op te sporen omdat ze bij het compileren al naar boven komen en niet pas als de code daadwerkelijk wordt uitgevoerd. Daarnaast heeft het ook een documenterende werking - iedereen die de code leest weet direct wat voor type een variabele is of wat een functie verwacht of teruggeeft. Tevens kunnen statische analyse tools de code veel beter snappen (inclusief de IDE die je kan helpen met autocompletion en dat soort zaken).Ik begrijp die extra layers als Coffeescript en Typescript niet goed
[Reactie gewijzigd door .oisyn op dinsdag 2 oktober 2012 15:58]
Die bijna 1 op 1 overeenkomt met je huidige code. Je overdrijft enorm als je stelt dat dit een serieuze hindernis is.zit je uiteindelijk toc tegen javascript aan te kijken
[Reactie gewijzigd door .oisyn op dinsdag 2 oktober 2012 17:21]
Ik weet wel zeker dat ie gaat komen, in ieder geval voor Visual Studio icm IE. Reken maar dat Microsoft er eentje gaat schrijven. Anders Helsbjerg (lead dev C#) gaf aan laatst aan dergelijke tools te werken. Nu TypeScript er is, is het wel duidelijk hoe dit vorm gaat krijgen.Die gaat er niet komen, zeker niet in firefox en chrome...
Maarja, dat laatste is dus in the eye of the beholder, want wat JIJ misschien helder van opzet vindt wil nog zeker niet zeggen dat dat ook voor een ander geldt, en als ik zo rondkijk in de praktijk hebben veel mensen hele andere ideeen over wat helder is..superkrachtig en goed leesbaar mits je je code en conventies helder opzet.
javascript:class Person
constructor: (name)->
@name = name
hello: ->
if @name?
console.log("#{@name} says hello!")
Ik persoonlijk vind Coffeescript een stuk makkelijker, maar ik snap wel dat er ook een aantal haters zijn, maar dat is ook gewoon persoonlijke smaak.var Person;
Person = (function() {
function Person(name) {
this.name = name;
}
Person.prototype.hello = function() {
if (this.name != null) {
return console.log(this.name + " says hello!");
}
};
return Person;
})();
[Reactie gewijzigd door mokkol op dinsdag 2 oktober 2012 15:45]
Ik denk dat dit is omdat ze TypeScript zoveel mogelijk willen laten lijken op JavaScript (eigenlijk ECMAScript, voor de kenners), waarin het enige type 'var' is. Door deze manier van schrijven lijkt het onderscheid duidelijker tussen directe variabele en de intelligente datatype-laag eroverheen.Ziet er aardig uit, maar waarom staat (in tegenstelling tot de meeste talen) het type rechts van de variabelnaam?
[Reactie gewijzigd door The Zep Man op dinsdag 2 oktober 2012 17:11]
Uhmm.. Nee?[...]
Ik denk dat dit is omdat ze TypeScript zoveel mogelijk willen laten lijken op JavaScript (eigenlijk ECMAScript, voor de kenners), waarin het enige type 'var' is.
[Reactie gewijzigd door R4gnax op dinsdag 2 oktober 2012 22:10]
...wordt gelezen als:(a + b) : Int
Ook in de wiskunde wordt deze notatie gebruikt. Neem bijv. deze functie:De expressie (a+b) heeft het type Int
Om het domein en codomein van deze functie aan te duiden gebruiken wiskundigen een notatie als:f(x, y) = 3x^2 + y
Nu heb ik me nog niet verdiept in TypeScript, dus ik weet niet of het volgende ook voor TypeScript geldt, maar in talen als ML/Haskell worden ingewikkeldere functietypes duidelijker. Neem de volgende methode uit de .NET library geschreven in semi-C# syntax:f : R x R -> R
En vergelijk dit met een Haskell-like syntax waarin types aan de rechterkant staan:List<B> SelectMany<A,B>(this List<A> list, Func<A,List<B>> func);
selectMany :: List a -> (a -> List b) -> List b
Op dit item kan niet meer gereageerd worden.
Populair: Asus Samsung Mobiele telefoons Laptops Apple Sony Games Microsoft Consoles Microsoft Xbox One
© 1998 - 2013 Tweakers.net B.V. Contact Over Tweakers Jouw privacy Algemene voorwaarden Cookies
Tweakers wordt uitgegeven door De Persgroep en wordt gehost door True