Dattiloscritto
| Dattiloscritto | |
|---|---|
|
| |
| Dati di base | |
| Paradigmi : | funzionale , imperativo , orientato agli oggetti ( prototipi , classi ), strutturato , scripting |
| Anno di pubblicazione: | 2012 |
| Progettista: | Microsoft |
| Sviluppatore: | Anders Hejlsberg , Microsoft |
| Versione attuale | 4.1.3 (15 dicembre 2020) |
| Digitazione : | forte , debole , anatra , dinamico , statico , esplicito , implicito |
| Influenzato da: | JavaScript , Java , C # |
| Licenza : | Licenza Apache |
| www.typescriptlang.org | |
TypeScript è un linguaggio di programmazione sviluppato da Microsoft che si basa sulle proposte per lo standard ECMAScript -6. I costrutti del linguaggio TypeScript come classi , ereditarietà , moduli e funzioni anonime sono stati adottati anche in ECMAScript 6.
Il compilatore TypeScript sviluppato da Microsoft compila il codice TypeScript secondo ECMA Script 3 (ES3) , opzionalmente anche secondo ECMA Script 5 (ES5) in semplice JavaScript . Ogni codice JavaScript è quindi anche codice TypeScript valido, in modo che le librerie JavaScript comuni (come jQuery o AngularJS ) possano essere utilizzate anche in TypeScript.
Con i moduli, TypeScript supporta l'incapsulamento di classi, interfacce, funzioni e variabili nei rispettivi spazi dei nomi. Viene fatta una distinzione tra moduli interni ed esterni. I moduli interni si basano sulla specifica del modulo da ECMAScript 6, mentre i moduli esterni utilizzano una libreria JavaScript ( AMD o CommonJS ).
TypeScript può essere integrato in vari strumenti di gestione build utilizzando plug-in , tra cui Grunt (grunt-ts), Apache Maven ( plug-in TypeScript Maven) e Gradle ( plug-in TypeScript Gradle).
storia
La prima versione disponibile pubblicamente di TypeScript è stata rilasciata nel 2012 dopo due anni di sviluppo da parte di Microsoft nella versione 0.8. Poco dopo che la lingua è stata annunciata, è stata elogiata da Miguel de Icaza . Tuttavia, ha criticato il fatto che non esistessero altri ambienti di sviluppo oltre a Microsoft Visual Studio , che non era disponibile per Linux e macOS nel 2013 . Dal 2013 è disponibile il supporto per i plugin per Eclipse , fornito da Palantir Technologies . Un gran numero di editor di testo e ambienti di sviluppo ora supportano TypeScript. Questi includono Emacs , vim , Sublime Text , WebStorm , Atom e l'editor di Visual Studio Code di Microsoft .
TypeScript 0.9 è stato rilasciato nel 2013 e ha portato il supporto per i tipi generici .
TypeScript 1.0 è stato presentato alla conferenza degli sviluppatori interna di Microsoft Build nel 2014. Visual Studio ha anche ricevuto il supporto per TypeScript.
Nel luglio 2014, gli sviluppatori di TypeScript hanno annunciato un nuovo compilatore che dovrebbe essere cinque volte più veloce del vecchio. Allo stesso tempo, il precedente codice sorgente TypeScript è stato migrato da CodePlex a GitHub .
La versione 2.0 è stata rilasciata il 22 settembre 2016, introducendo varie nuove funzioni. Tra le altre cose, è stata introdotta una funzione opzionale per impedire che le variabili vengano nullinizializzate per impostazione predefinita . Questo dovrebbe portare a meno eccezioni del puntatore nullo .
La versione 3.0 è stata rilasciata il 30 luglio 2018. Particolarmente degno di nota è il nuovo tipo primitivo unknown. Insieme a void(il tipo di unità) e never(il tipo vuoto) completa i bordi della gerarchia dei tipi: unknownè un tipo universale; qualsiasi oggetto può essere assegnato a una di queste variabili e di conseguenza unknownnon ci si può aspettare nulla da un valore. TypeScript richiede quindi un'asserzione o controlli. Al contrario, anyè anche un tipo universale, ma TypeScript consente di utilizzare direttamente i valori, sebbene in realtà non ci siano informazioni su di essi. Questo unknownnon è altro che l'equivalente indipendente dai tipi di any.
Caratteristiche
TypeScript estende il linguaggio ECMAScript 6 con le seguenti caratteristiche:
- Firma del metodo
- Inferenza di tipo
- Digita Cancellazione
- Interfacce
- Tipo di enumerazione
- Programmazione generica
- Spazi dei nomi
- Tupla
- Async / Await
I seguenti elementi sono stati aggiunti tramite un backport di ECMAScript 2015:
Compatibilità con JavaScript
TypeScript è un superset rigoroso di ECMAScript 2015, che è esso stesso un superset di ECMAScript 5, che viene spesso messo in riferimento con JavaScript. Un programma JavaScript è quindi anche un programma TypeScript valido. Ciò significa che TypeScript può utilizzare JavaScript senza problemi. Il compilatore normalmente utilizza ECMAScript 5, ma esiste anche la possibilità di utilizzare i costrutti di ECMAScript 3 o 2015.
TypeScript offre la possibilità di utilizzare il codice JavaScript esistente e le librerie JavaScript note.
Firma del metodo
TypeScript fornisce firme di metodo che consentono di verificare i metodi durante la compilazione. Questo è opzionale e può essere ignorato.
function add(left: number, right: number): number {
return left + right;
}
Le annotazioni per i tipi primitivi sono number, booleane string.
Classi
TypeScript supporta le classi ECMAScript 2015 che possono utilizzare firme di metodo opzionali:
class Person {
private name: string;
private age: number;
private salary: number;
constructor(name: string, age: number, salary: number) {
this.name = name;
this.age = age;
this.salary = salary;
}
toString(): string {
return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4
}
}
Programmazione generica
TypeScript supporta la programmazione generica . Questo è un esempio di una funzione di identità:
function doSomething<T>(arg: T): T {
return arg;
}
design
TypeScript proviene dal linguaggio di scripting JavaScript e mira a rimediare ai suoi difetti nello sviluppo di applicazioni di grandi dimensioni, avviato da Microsoft stessa. La sfida di affrontare il codice complesso di JavaScript ha portato alla creazione di uno strumento personalizzato per semplificare lo sviluppo di questi componenti.
Gli sviluppatori di TypeScript stavano cercando una soluzione che non compromettesse la compatibilità con lo standard o l'indipendenza dalla piattaforma di JavaScript. Con la consapevolezza che ECMAScript voleva supportare la programmazione basata su classi in futuro, TypeScript è stato sviluppato su questo principio. Il risultato è stato un compilatore JavaScript con alcune estensioni che traducono il codice in JavaScript.
Supporto ECMAScript 2015
TypeScript ha aggiunto il supporto per lo standard ECMAScript 2015.
storia
| Numero della versione | Data di rilascio | I cambiamenti |
|---|---|---|
| 0.8 | 1 ottobre 2012 | Prima pubblicazione |
| 0.9 | 18 giugno 2013 | Espressioni generiche , sovraccarico di parametri costanti, enum |
| 1.1 | 6 ottobre 2014 | Miglioramenti delle prestazioni |
| 1.3 | 12 novembre 2014 |
protected Modificatore di accesso , tipi di tupla
|
| 1.4 | 20 gennaio 2015 | Tipi di unione lete constdichiarazioni, stringhe di modelli, protezioni dei tipi, alias di tipo
|
| 1.5 | 20 luglio 2015 |
Moduli ES6 , namespaceparola chiave, for..ofsupporto, decoratore
|
| 1.6 | 16 settembre 2015 | Supporto JSX, tipi di intersezione, dichiarazioni di tipo locale, classi e metodi astratti, funzioni di guardia definite dall'utente |
| 1.7 | 30 novembre 2015 | Supporto per asynceawait
|
| 1.8 | 22 febbraio 2016 | Vincoli Generici, analisi degli errori del flusso di controllo, tipi di stringhe letterali, allowJs
|
| 2.0 | 22nd settembre 2016 |
nulle undefinedtipi preventivi, analisi del nevertipo basata sul flusso di controllo, tipi di unione discriminati, tipo, readonlyparola chiave,this
|
| 2.1 | 8 novembre 2016 |
keyof e tipi di ricerca, tipi mappati, proprietà residue e diffuse per gli oggetti
|
| 2.2 | 22 febbraio 2017 | Classi combinate, objecttipo
|
| 2.3 | 27 aprile 2017 |
async Iterazione, parametri predefiniti generici, opzione rigorosa
|
| 2.3 | 27 giugno 2017 | importespressioni dinamiche , enumerazioni di stringhe, ereditarietà migliorata per tipi di dati generici, controvarianza rigorosa per i parametri di callback
|
| 2.5 | 31 agosto 2017 | variabili della clausola catch facoltative per le eccezioni |
| 2.6 | 31 ottobre 2017 | tipi di funzioni rigorose |
| 2.7 | 31 gennaio 2018 |
constproprietà con nome, tuple di lunghezza fissa
|
| 2.8 | 27 marzo 2018 | Tipi condizionali, miglioramento della keyofcombinazione con i tipi di intersezione
|
| 2.9 | 31 maggio 2018 | Supporto di numbere symbolproprietà denominate con keyofe mappe finite. import(...)-Tipi.
|
| 3.0 | 30 luglio 2018 | Tuple come parametri residui, espressioni di diffusione per tuple, parametri residui generici, elementi opzionali in tuple, unknowncome tipi universali (vedere anche teoria dei tipi ), defaultPropsin JSX |
| 3.1 | 27 settembre 2018 | Tuple mappate e tipi di array |
| 3.2 | 30 novembre 2018 | Controllo più stretto di bind, calleapply
|
| 3.3 | 31 gennaio 2019 | Regole sciolte per metodi di tipi di connessione, build incrementali per progetti comuni |
| 3.4 | 29 marzo 2019 | Miglioramenti a build incrementali, progetti compositi, inferenza, array di sola lettura, controllo del tipo per variabili globali e vari altri |
| 3.5 | 29 maggio 2019 |
Omit come un nuovo tipo integrato |
| 3.6 | 28 agosto 2019 | Iteratore e funzioni di generazione più rigorosi, supporto per Unicode per gli identificatori |
| 3.7 | 5 novembre 2019 | Concatenamento opzionale, operatore di coalescenza nullo, funzioni di asserzione, supporto migliorato per i metodi che restituiscono nevere molti altri. |
| 3.8 | 20 febbraio 2020 | Importazioni ed esportazioni di solo tipo, campi privati, awaitmodifiche di primo livello e molte altre. |
| 3.9 | 12 maggio 2020 | Crea @ts-expect-errormiglioramenti alla velocità, commenti, miglioramenti all'editor e altre modifiche. |
| 4.0 | 20 agosto 2020 | Variadic tuple , i nomi di elementi in una tupla, migliore supporto JSX |
| 4.1 | 19 novembre 2020 | Concatenazione di tipi di stringa |
link internet
- DefinitelyTyped : raccolta di interfacce TypeScript per framework JavaScript popolari
Prove individuali
- ↑ Versione 4.1.3 . 15 dicembre 2020 (accesso 18 dicembre 2020).
- ↑ Wiki di ECMAScript. (Non più disponibile online.) Archiviato dall'originale il 22 maggio 2008 ; accesso il 3 aprile 2013 . Info: il collegamento all'archivio è stato inserito automaticamente e non è stato ancora verificato. Controllare l'originale e il collegamento all'archivio secondo le istruzioni, quindi rimuovere questo avviso.
- ↑ a b TypeScript. Estratto il 3 aprile 2013 (inglese, homepage di TypeScript).
- ↑ Introduzione al sistema di moduli TypeScript Estratto il 4 febbraio 2014 (in inglese, articolo sul sistema di moduli TypeScript).
- ↑ grugniti. Estratto il 21 febbraio 2014 .
- ↑ Plugin TypeScript Maven. Estratto il 21 febbraio 2014 .
- ↑ Plugin TypeScript Gradle. Estratto il 21 febbraio 2014 .
- ↑ Personale di IDG News Service: Microsoft aumenta JavaScript per lo sviluppo su larga scala . In: InfoWorld . ( infoworld.com [visitato l'11 luglio 2018]).
- ↑ Annuncio di TypeScript 1.0 . ( microsoft.com [accesso 11 luglio 2018]).
- ↑ @ COPYRIGHT @: TypeScript: First Impressions - Miguel de Icaza. Accesso 11 luglio 2018 .
- ↑ Matt Baxter-Reynolds: Microsoft TypeScript: il padre di C # può salvarci dalla tirannia di JavaScript? | ZDNet . In: ZDNet . ( zdnet.com [visitato l'11 luglio 2018]).
- ↑ Julia Schmidt: supporto TypeScript per Eclipse. Estratto l'11 luglio 2018 (tedesco).
- ↑ TypeScript . In: Plugin, pacchetti e prodotti Eclipse - Eclipse Marketplace . ( eclipse.org [visitato l'11 luglio 2018]).
- ↑ Digita Strong / Atom-typescript. Accesso 11 luglio 2018 .
- ↑ TypeScript. URL consultato l'11 luglio 2018 .
- ↑ Lavorare con TypeScript in Visual Studio 2012 . In: Dr. Dobb's . ( drdobbs.com [visitato l'11 luglio 2018]).
- ^ Nuovo compilatore e passaggio a GitHub . ( msdn.com [visitato l'11 luglio 2018]).
- ↑ TypeScript, JavaScript di Microsoft per grandi applicazioni, raggiunge la versione 2.0 . In: Ars Technica . ( arstechnica.com [visitato l'11 luglio 2018]).
- ↑ Microsoft presenta in anteprima il nuovo linguaggio di programmazione simile a JavaScript TypeScript. In: TechCrunch. Estratto il 18 maggio 2020 (inglese americano).
- ^ Angolare. Estratto il 18 maggio 2020 .
- ↑ JavaScript digitato su qualsiasi scala. Estratto il 18 maggio 2020 .
- ↑ Annuncio di TypeScript 0.9. 18 giugno 2013, URL consultato il 18 maggio 2020 (inglese americano).
- ↑ Manuale - Generici. Estratto il 18 maggio 2020 .
- ^ Scott Hanselman: Cos'è TypeScript e perché con Anders Hejlsberg. Estratto il 18 maggio 2020 .
- ↑ kexugit: TypeScript: sviluppo JavaScript su scala dell'applicazione. Estratto il 18 maggio 2020 (inglese americano).
- ↑ Annuncio di TypeScript 0.9. 18 giugno 2013, URL consultato il 19 gennaio 2021 (inglese americano).
- ↑ https://www.typescriptlang.org/docs/handbook/release-notes/typescript-1-7.html accesso 1 agosto 2019
- ↑ Annuncio di TypeScript 3.0. 30 luglio 2018; URL consultato il 19 gennaio 2021 (inglese americano).
- ↑ Annuncio di TypeScript 3.5. 29 maggio 2019, accesso 19 gennaio 2021 (inglese americano).
- ↑ Annuncio di TypeScript 3.6. 28 agosto 2019, accesso 19 gennaio 2021 (inglese americano).
- ↑ Annuncio di TypeScript 3.7. 5 novembre 2019, accesso 2 marzo 2020 (inglese americano).
- ↑ Annuncio di TypeScript 3.8. 20 febbraio 2020, accesso 2 marzo 2020 (inglese americano).
- ↑ Annuncio di TypeScript 3.9. 12 maggio 2020, accesso 14 maggio 2020 (inglese americano).
- ↑ Annuncio di TypeScript 4.0. 20 agosto 2020, accesso 19 gennaio 2021 (inglese americano).
- ↑ Annuncio di TypeScript 4.1. 19 novembre 2020, accesso 19 gennaio 2021 (inglese americano).