Qual è la motivazione dietro TypeScript?


21

Avevamo JavaScript, poi Flash, poi Silverlight e HTML5 li possedevamo tutti.

Quindi qual è la motivazione dietro TypeScript? Quali problemi verranno affrontati e quali miglioramenti otteniamo con TypeScript?

http://www.typescriptlang.org/


15
Perché pensi che HTML5 "possieda" JavaScript?
Bergi,

1
Nel senso che tutti dovevano concordare alcune cose per trovare un terreno comune => tecnologia e sviluppo bloccati.
Gero

3
Perché hai menzionato Dart?
Robert Harvey,

Dart, TypeScript o Coffeescript possono essere compilati in JavaScript. E anche Dart è abbastanza nuovo.
Gero,

Dai un'occhiata a questo articolo "Thoughts on TypeScript" di Nicholas C. Zakas: nczonline.net/blog/2012/10/04/thoughts-on-typescript
Czarek Tomczak,

Risposte:


35

Mi sembra che sia un linguaggio di tipo statico e basato su classi che si compila in JavaScript. È una buona idea, e anche quella che hanno avuto anche altri.

I vantaggi dovrebbero essere ovvi per chiunque sia sviluppato in linguaggi di tipo statico, basati su classi e in JavaScript:

  • Innanzitutto, un compilatore. Essere in grado di verificare gli ovvi problemi di correttezza causati da errori di battitura o disattenzione prima della distribuzione è qualcosa che la maggior parte degli sviluppatori dà per scontato fino a quando non devono fare lo sviluppo web, e poi viene improvvisamente tirato fuori da sotto i loro piedi. I browser sono progettati per rendere piacevole l'esperienza di navigazione a spese di adeguate strutture di test e debug e la soluzione standard, JSLint, non sostituisce un vero compilatore in quanto manca alcuni ovvi problemi di correttezza e mescola un sacco di lamentele nel controllo dello stile in con i suoi rapporti. Avere un vero compilatore è un enorme passo avanti.
  • E seguendo linee simili, un sistema di tipi . I sistemi di tipo migliorano il tuo codice facilitando la lettura (sai esattamente cosa viene passato in una funzione e cosa può fare, semplicemente guardando l'elenco dei parametri, ad esempio) e applicando un certo grado di correttezza durante la compilazione tempo. (Se ti aspetti un tipo di oggetto specifico, passare un numero intero è un errore. JavaScript ti permetterà di farlo e poi esploderà quando proverai a eseguirlo; un compilatore con un sistema di tipi lo catturerà e segnalerà un errore per voi.)

Quindi, come vediamo, l'idea di base è ottima. Detto questo, non posso dire nulla sulla lingua stessa perché non ho esperienza con essa. Ma ho usato Smart (collegato sopra) e l'ho trovato uno strumento incredibilmente potente e utile per lo sviluppo web.


7
È più simile a un superset di JavaScript che a una nuova lingua che lo compila.
Daniel Little,

2
Sì, la digitazione forte facilita i programmatori.
Edwin Yip,

13
TypeScript è tipizzato staticamente, non fortemente tipizzato.
Fenton,

15

Ci sono alcuni buoni motivi per usare TypeScript, per quanto posso vedere. Innanzitutto, come diceva Mason Wheeler, un compilatore . O meglio tutto il controllo di un compilatore. JSLint e altri strumenti sono utili, ma mancano alcuni problemi e talvolta sono semplicemente sbagliati. Accolgo con favore questa "innovazione".

Quindi esiste un sistema di tipi reale , che migliora la leggibilità e impone i tipi corretti. Dopotutto, questo aumenta la velocità di sviluppo.

Per me, una delle grandi cose è il supporto degli utensili . Questo è probabilmente un effetto collaterale del sistema di tipi, ma comunque eccezionale. E davvero necessario, poiché l'attuale supporto degli strumenti JavaScript è assolutamente utile.

TypeScript tenta di estendere JavaScript . Il compilatore genera JavaScript davvero piacevole. Inoltre, segue le proposte ECMAScript 6 . (Ad esempio sintassi della funzione freccia , valori predefiniti dei parametri , moduli e così via.

Semplifica il lavoro con moduli e classi . In realtà è possibile e abbastanza comune lavorare con classi e moduli in JavaScript, ma richiede una certa quantità di codice boilerplate. E non è davvero facile da leggere. TypeScript consente di scrivere istruzioni di classe, interfaccia e modulo proprio come in Java o C #, il che è di gran lunga più semplice se me lo chiedi.

Ma dopo tutto, è ancora solo JavaScript . Non è necessario imparare una nuova lingua o sintassi. L'unica cosa che aggiunge è il sistema di tipi opzionale (che è eccezionale e in ritardo).

Poi c'è la "libreria delle definizioni" , il che significa che posso usare tutte le mie librerie JavaScript senza riscriverle, o persino correggerle. Tuttavia, ora ho il sistema di tipi aggiuntivo.

Ci proverò sicuramente!

Un'ultima cosa, non c'è competizione tra HTML5 e TypeScript. Ma questa è un'altra storia.


5

Avevamo JavaScript, poi Flash, poi Silverlight e HTML5 li possedevamo tutti.

Questo semplicemente NON è vero . Html5 non li possiede, introduce nuovi markup che semplificano l'utilizzo dei contenuti multimediali ed esplora i vantaggi dei browser della nuova era (come l'utilizzo dell'accelerazione hardware durante il rendering di html).

Quindi qual è la motivazione dietro TypeScript?

Le motivazioni potrebbero essere guidate da ragioni per usarlo. Tutte le funzionalità di TypeScript come: controllo statico, navigazione basata su simboli, completamento delle istruzioni e refactoring del codice sono ragioni molto valide per considerarlo.

Inoltre, offre classi, moduli e interfacce per aiutarti a costruire componenti robusti. Queste funzionalità sono disponibili al momento dello sviluppo per lo sviluppo di applicazioni ad alta affidabilità, ma sono compilate in un semplice JavaScript.


HTML 5 non è un pre-req per l'accelerazione hardware. La maggior parte dei browser lo fa con o senza markup HTML5
Neil N

la mia affermazione indica che l'accelerazione hardware è una funzionalità che il browser non fornisce html5.
Yusubov,

3

Può essere trattato come uno strumento per gestire lo sviluppo di JavaScript piuttosto che un linguaggio completamente nuovo che viene compilato in JS. Non vuole essere un linguaggio di sviluppo lato server come Dart e non avere una sintassi diversa come CoffeeScript. Non voleva prendere un linguaggio popolare (ed è la sua libreria principale) e compilarlo in JS come GWT o script #. TypeScript segue anche la stessa sintassi di "classe" proposta per la prossima versione di JS.

Penso che la maggior parte dello sviluppo web sia fatto oggi utilizza JavaScript reale, solo nel lato client. Linguaggi o framework come Dart, GWT non sono adatti a questo. Se scegli coffeescript, viene visualizzata una nuova sintassi. E devi capire sia coffeescript che JS. Mentre TypeScript sta solo aggiungendo alcune funzionalità orientate al tipo extra, unite in JS, che salva gli sviluppatori da errori specifici del tipo (che è una grande porzione di errori JS) e fornisce agli strumenti di sviluppo maggiori informazioni sulle intenzioni degli sviluppatori.

Questo approccio non è nuovo. Vai alla sezione "Digitazione statica" di

Questo articolo indirizza la tua query- http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

Penso che sia uno sforzo per trasformare un pezzo di merda (javascript) condiviso e inaffidabile in un linguaggio proprietario che può effettivamente essere utilizzato per progetti sostanziali.

Dovrebbe essere paragonato a GWT, che ha una serie di obiettivi simili ma ha adottato un approccio più pulito rendendo javascript non parte del linguaggio; e con applet Java o Flash, che adottano un approccio molto pulito per la definizione di un ambiente di runtime completo indipendente dal browser.

La tua opinione può variare, ma penso che sia condannata a condizione che dipenda dai browser che forniscono nativamente le implementazioni javascript (variabili, incoerenti) e i modelli DOM.


5
Innanzitutto non è proprietario, è già uno standard aperto. In secondo luogo è più simile a Dart che a GWT / ScriptSharp (sebbene simile).
Daniel Little

1
Probabilmente non c'è modo di vincere a questo - se Microsoft non lo controlla, diventerà un altro linguaggio bastardato con molte varianti, ed è ancora dipendente dalle sabbie mobili di javascript e DOM
ddyer

1
Sembri qualcuno che potrebbe essere un po 'amaro per le sue abilità Flash e / o Java rese notevolmente meno rilevanti dall'attuale popolare stack HTML5 / JS.
Graham,

3
-1 Quindi non ti piace JavaScript. Questa è la tua affermazione, in sostanza.
Bruno Schäpper,

2
Giusto, e dal momento che è il fondamento del dattiloscritto, credo che il dattiloscritto si basi su una base sbagliata. Non è necessariamente fatale, ma è un mondo di dolore.
tinto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.