2013-04-20 14 views
7

Ich habe gerade angefangen, die Grundlagen von Typescript zu lesen und kann mir jemand die Vorteile von Typescript über Javascript oder jquery sagen? Ein Beispiel wäre hilfreich.Vorteile von TypeScript

+3

typescript gibt Ihnen starke Schreib- und Kompilierzeitprüfung. Javascript funktioniert nicht. jquery ist eine Bibliothek und kann mit beiden verwendet werden. Typoskript ist eine Obermenge von Javascript. – devshorts

Antwort

2

Hier ist eine Sammlung von Videos auf Typoskript:

http://channel9.msdn.com/search?term=typescript

Im Grunde ist es optional statische Typisierung zu Javascript fügt hinzu, so dass alle Vorteile der statischen Typisierung gebracht Javascript.

+0

Danke Kenneth für den Link. Ich habe gerade das erste Video angeschaut. Es war informativ. werde den Rest irgendwann später machen. :) – Bala

3

JQuery und Typescript schließen sich gegenseitig nicht aus, da JQuery in Typescript relativ häufig verwendet wird. Der Hauptvorteil der Verwendung von Typescript gegenüber Javascript ist das Hinzufügen von Typprüfungen. Dadurch können Sie Schnittstellen erstellen und vertraglich entwickeln. In größeren Projekten kann es nützlich sein, eine Typüberprüfung durchzuführen, aber das ist eine subjektive Präferenz.

+0

Danke Sean.Bis jetzt benutze ich Javascript für die clientseitige Validierung und um die Steuerelemente auf der Seite basierend auf der Clientauswahl zu aktivieren oder zu deaktivieren. Die meisten meiner Geschäftslogik sind in C# geschrieben. Schnittstellen auf der Client-Seite zu erstellen, ist neu für mich. Wie werden die Schnittstellen auf der Client-Seite nützlich sein? – Bala

+0

Es hängt von Ihrem Anwendungsfall ab. Wir haben in Typescript einige ziemlich große clientseitige Anwendungen entwickelt, daher war es schön, eine Typüberprüfung durchzuführen, während entkoppelter Code über Schnittstellen geschrieben werden konnte. Auch das ist subjektiv. –

+0

Nach meinem Verständnis der Erstellung von Schnittstellen, Klassen hängt alles von Ihrer Datenbank (oder Tabelle) Struktur. In Ihrem Fall meinst du, dass der Typoskript-Code auch Geschäftslogik enthält? Wenn ja, kann der Endbenutzer die Logik sehen? Ich lese auch, dass die .ts-Datei in .js-Datei kompiliert wird. – Bala

11

Ich habe Typoskript für ein paar kleine Hobby-Projekte verwendet und ich bin überzeugt, dass es der perfekte Javascript-Ersatz ist. Meine Lieblingsfeatures waren:

  • Deklarationsdateien. Mit Deklarationsdateien können Sie Ihren Javascript-Bibliotheken Typinformationen hinzufügen. Diese strukturellen Informationen erhalten Sie fantastische Intellisense-Unterstützung in VisualStudio.

  • "Standard" OOP. Wenn Sie von einem C# - oder Java-Hintergrund kommen, brauchen Sie wahrscheinlich nicht einmal ein Typoskript-Tutorial. Es funktioniert einfach. Sie haben Klassen, Schnittstellen, Zugriffsmodifizierer, Erweiterungsmechanismen, ...

  • Integrierte Unterstützung für Module. Typescript hat ein leicht verwirrendes Modulsystem. Sie können Ihren Code in mehrere .ts-Dateien aufteilen und sie einfach anhängen, aber Sie können auch verschiedene Module erstellen.

Und schließlich: Die Syntax. Manchmal sind es die kleinen Dinge, die den größten Einfluss haben. Für mich fühlt sich die Syntax von Typoskripten einfach perfekt an. Lassen Sie mich Ihnen ein paar Beispiele:

Typ Anmerkungen mit ":" und Typinferenz

var a = 5; //infers that a has the type number 
var canvas : HTMLCanvasElement = document.getElementById("canvas"); 
// automatically casts to the canvas type. Intellisense will now suggest all the canvas specific methods 

Arrays, die als Listen arbeiten, stapelt, ...

var array= []; //dynamic type 
array.push(1); 
array[1]=2; 
array.pop(); 

var array2 : number[] = []; //typed array 
array[0]=2; 
array[1]="hello" //compile time error. You've got to love the type system. Finally you can trust your collections 

und Funktionen mit der arrow Syntax wie Lambda-Ausdrücke:

var array=[]; 
array.push(1); 
//... 
array.forEach((num)->{alert(num);}); 
//for single statement functions you can write 
array.forEach((num)->alert(num)); 

nun getippt Arrays und Lambda-Ausdrücke kombiniert:

var array: number[]=[]; 
array.push(1); 
//... 

//let's assume you want to work with the data in the array. You've got to filter it and process it. Lambdas will come in handy, as well as the type inference 
array.filter((num)->num>3).map((num)->num*2).forEach((num)->alert(num)); 

// the first lambda with the comparison is fully type safe. The compiler knows the type of the array. Therefore it can infer the type of the parameter num and will check if num can be compared to a number 

Ich habe es wirklich genossen Typescript zu verwenden. Es wird Ihre Produktivität erheblich steigern. Und es gibt noch mehr zu kommen: http://typescript.codeplex.com/wikipage?title=Roadmap

Die 0.9-Version wird Generika und für die 1.x-Versionen planen sie async/warten Anrufe implementieren.

+0

Kühl. Vielen Dank für Ihre Zeit bei der Beantwortung der Frage. Typescript ist Client Side C#, das in JavaScript konvertiert wird. – Bala