2016-05-25 20 views
15

So che TypeScript è stato utilizzato per scrivere Angular2, che probabilmente lo rende una scelta migliore per qualcuno che vuole entrare in Angular2, ma quando guardo Babel sembra molto simile a TypeScript .Quali sono le principali differenze tra Babel e TypeScript

Ho notato che molte aziende note aderiscono a Babel.

Alcune domande:

  1. Quali sono i vantaggi che hanno gli uni sugli altri?
  2. Quali sono le scelte migliori o peggiori per il progetto/sviluppatore?
  3. Quali sono le principali differenze tra loro e cosa li rendono unici?
+3

Anche a prima vista è chiaro che sono strumenti completamente diversi. Puoi rispondere a questa domanda investendo 15 minuti nell'introduzione per ognuno. – Marty

+1

TypeScript è una lingua, Babel è uno strumento (per traspare ES6, una lingua, per ES5). – deceze

+3

@Marty I due compilatori sono in competizione, questa domanda è legittima. – Paleo

risposta

29

TypeScript è un superset di JavaScript che viene compilato in un semplice JavaScript (ES3 +). L'obiettivo principale di TypeScript è consentire agli sviluppatori di sfruttare eccellenti capacità di scrittura statica . e 'adatto per applicazioni di grandi dimensioni che trarrebbero vantaggio dal caratteristiche come:.

  • annotazioni di tipo & inferenza
  • Generics
  • interfacce, enumerazioni, namespace, moduli e classi (questi ultimi due disponibili in ES6.)
  • Refactoring sicuro.

Per quanto ne so, Babel semplicemente "transpiles" più recenti ECMAScript presenta verso il basso in un formato che è supportato da ambienti ECMAScript più anziani. È adatto per gli sviluppatori che desiderano scrivere semplici JavaScript utilizzando le nuove funzionalità linguistiche.

+0

significa che TypeScript è sia un transpiler ES6 che ES3 + e un superset di javascript che aggiunge alcune funzionalità a javascript, mentre Bable trasporta solo ES6 in ES5? – Teebo

+0

@Teebo Sì, è corretto. –

+1

E ora Typescript supporta semplicemente JavaScript vecchio, quindi non c'è davvero alcuna ragione per usare più babel. – JoyalToTheWorld

13

Victor Savkin uno degli angolari 2 sviluppatori parla del motivo per cui hanno selezionato Typescript rispetto ad altre tecnologie.

http://victorsavkin.com/post/123555572351/writing-angular-2-in-typescript

l'ultima sezione Perché tipografico?

"Ci sono un sacco di opzioni disponibili per frontend sviluppatori di oggi:? ES5, ES6 (Babel), dattiloscritto, Dart, PureScript, Elm, ecc .. Allora perché dattiloscritto

Cominciamo con ES5 ES5. ha un vantaggio significativo rispetto a TypeScript: non richiede un transpiler, questo ti permette di mantenere la configurazione della tua build semplice, non è necessario impostare osservatori di file, codice di transpile, generare mappe di origine, funziona. la semplicità supera le funzionalità avanzate di refactoring e navigazione di TypeScript, basta sapere dove si trova tutto il codice e cosa fa

ES6 richiede un transpiler, quindi il bu l'installazione di ild non sarà molto diversa da TypeScript. Ma è uno standard, il che significa che ogni singolo editor e strumento di costruzione supporta ES6 o lo supporterà.

Elm e PureScript sono lingue eleganti con potenti sistemi di tipi che possono dimostrare molto di più sul programma rispetto a TypeScript. Il codice scritto in Elm e PureScript può essere molto più teso del codice simile scritto in ES5.

Ciascuna di queste opzioni presenta pro e contro, ma penso che TypeScript sia in una posizione ideale che lo rende un'ottima scelta per la maggior parte dei progetti. TypeScript prende il 95% dell'utilità di un buon linguaggio tipizzato staticamente e lo porta all'ecosistema JavaScript. Hai ancora la sensazione di scrivere ES6: continui a utilizzare la stessa libreria standard, le stesse librerie di terze parti, gli stessi idiomi e molti degli stessi strumenti (ad esempio, gli strumenti di sviluppo di Chrome). Ti dà molto senza forzarti a uscire dall'ecosistema JavaScript. "

Problemi correlati