2013-04-20 12 views
7

Ho appena iniziato a leggere le basi di Typescript e qualcuno può dirmi i vantaggi dell'uso di Typescript su Javascript o jquery? Qualche esempio sarebbe utile.Vantaggi di TypeScript

+3

dattiloscritto offre una forte digitazione e verifica del tempo di compilazione. javascript no. jquery è una libreria e può essere utilizzata con entrambi. dattiloscritto è un superset di javascript. – devshorts

risposta

2

Ecco una raccolta di video on dattiloscritto:

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

Fondamentalmente si aggiunge tipizzazione statica opzionale per Javascript, quindi tutti i vantaggi della tipizzazione statica portato a Javascript.

+0

Grazie Kenneth per il link. Ho appena visto il primo video. È stato informativo. farà il resto qualche tempo dopo. :) – Bala

3

JQuery e Typescript non si escludono a vicenda, poiché è abbastanza comune utilizzare JQuery in Typescript. Il vantaggio principale dell'uso di Typescript su Javascript è l'aggiunta del controllo dei tipi. Ciò consente di creare interfacce e svilupparsi per contratto. Nei progetti più grandi, può essere utile avere il controllo del tipo, ma questa è una preferenza soggettiva.

+0

Grazie Sean.Fino ad ora uso javascript per la validazione lato client e per abilitare o disabilitare i controlli nella pagina in base alla selezione del client. la maggior parte della mia logica aziendale è scritta in C#. Creare interfacce nel lato client è nuovo per me. come saranno utili le interfacce nel lato client? – Bala

+0

Dipende dal tuo caso d'uso. Abbiamo sviluppato un paio di applicazioni client-side piuttosto grandi in Typescript, quindi è stato bello avere il controllo dei tipi, pur essendo in grado di scrivere codice disaccoppiato tramite interfacce. Di nuovo, è soggettivo. –

+0

Secondo la mia comprensione, la creazione di interfacce, classi tutto dipende dalla struttura del database (o tabella). Nel tuo caso, vuoi dire che il codice dattiloscritto conterrà anche qualche logica di business? se è possibile per l'utente finale vedere la logica? Inoltre ho letto che il file .ts sarà compilato al file .js. – Bala

11

Ho usato dattiloscritto per alcuni piccoli progetti di hobby e sono convinto che sia la perfetta sostituzione di Javascript. Le mie funzionalità preferite erano:

  • File di dichiarazione. Con i file di dichiarazione puoi aggiungere informazioni di tipo alle tue librerie javascript. Questa informazione strutturale ti fornirà un fantastico supporto intellisense in VisualStudio.

  • "Standard" OOP. Se provi da uno sfondo C# o Java probabilmente non avrai nemmeno bisogno di un tutorial sul dattiloscritto. Funziona e basta. Hai classi, interfacce, modificatori di accesso, meccanismi di estensione, ...

  • Supporto integrato per moduli. Typescript ha un sistema di moduli leggermente confusionario. Puoi dividere il tuo codice in diversi file .ts e aggiungerli, ma puoi anche creare diversi moduli.

Infine: la sintassi. A volte sono le piccole cose ad avere l'impatto maggiore. Per me la sintassi del dattiloscritto sembra perfetta. Mi permetta di darle un paio di esempi:

con le annotazioni di tipo ":" e inferenza di tipo

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 

Array che funzionano come liste, pile, ...

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 

e funzioni del freccia sintassi lambda:

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

array Ora tipizzati e lambda combinati:

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 

Mi è davvero piaciuto usare dattiloscritto. Aumenterà in modo significativo la tua produttività. E c'è ancora altro a venire: http://typescript.codeplex.com/wikipage?title=Roadmap

La versione 0.9 conterrà i generici e per le versioni 1.x prevede di implementare chiamate asincrone/di attesa.

+0

Fresco. Grazie per il tuo tempo nel rispondere alla domanda. Typescript è client Side C# che viene convertito in JavaScript. – Bala