TypeScript 3.8 aggiunge importazioni ed esportazioni di solo tipo

TypeScript 3.8, una nuova versione del superset tipizzato di JavaScript di Microsoft, è ora disponibile come versione di produzione. L'ultimo aggiornamento di TypeScript enfatizza le importazioni e le esportazioni di solo tipo e la conformità agli standard ECMAScript.

Il rilascio aggiunge una nuova sintassi per le importazioni e le esportazioni di solo tipo, con l'intento di fornire agli utenti un controllo più dettagliato sull'importazione e l'elisione. La import typesintassi importa solo le dichiarazioni da utilizzare per le annotazioni e le dichiarazioni di tipo e viene sempre completamente cancellata. La  export type sintassi fornisce solo un'esportazione da utilizzare per i contesti di tipo e viene cancellata dall'output di TypeScript.

TypeScript ha utilizzato la sintassi di importazione di JavaScript per abilitare i tipi di riferimento. Sebbene comoda, la funzionalità funzionava solo grazie alla funzione di elisione dell'importazione, che omette le importazioni di tipo TypeScript quando TypeScript emette file JavaScript. Tuttavia, l'elisione delle importazioni è stata insufficiente e problematica.

In combinazione con  import type, tipografico 3.8 aggiunge anche una bandiera compilatore di controllare ciò che accade con importazioni che verranno utilizzati in fase di esecuzione:  importsNotUsedAsValues.

Per quanto riguarda lo standard ECMAScript per JavaScript, TypeScript 3.8 aggiunge il supporto per i campi privati ​​ECMAScript, che fa parte di una proposta di dichiarazione dei campi di classe per JavaScript. I settori pubblico e privato saranno integrati in un insieme ortogonale, secondo questa proposta.

Altri miglioramenti promessi in TypeScript 3.8 includono:

  • “Tira e molla” tipo controllo incrementale, con un'opzione del compilatore, assumeChangesOnlyAffectDirectDependencies. Questa opzione può ridurre i tempi di creazione di alcuni file, poiché TypeScript ricontrollerà / ricostruirà solo i file che sono stati modificati e i file che li importano direttamente. È consigliato per basi di codice di grandi dimensioni in cui gli sviluppatori sono disposti a rimandare gli errori completi del progetto a un momento successivo.
  • Implementazione dell'esportazione come * nssintassi, fornendo un unico punto di ingresso per esporre tutti i membri di un altro modulo come un unico membro.
  • Primo livello await, una funzionalità ECMAScript imminente per rimuovere le restrizioni sull'uso di awaitun'espressione nella parte superiore di un file in condizioni specifiche.
  • I file JavaScript sono supportati in TypeScript 3.8 attivando il allowJsflag; il controllo del tipo di questi file è supportato tramite l' checkjsopzione o aggiungendo un commento // @ ts-check all'inizio dei file .js. I nuovi tag JSDoc vengono utilizzati per le proprietà, poiché i file JavaScript non dispongono di una sintassi dedicata per il controllo del tipo.
  • Un watchOptionscampo in tsconfig.jsone jsconfig.jsonconsente agli utenti di indicare al compilatore / al servizio di linguaggio quali strategie di controllo dei file utilizzare per tenere traccia di file e directory.
  • Un refactoring per convertire concatenazioni di stringhe.
  • Controlli di assegnabilità più severi ai sindacati con firme di indice, un cambiamento radicale.
  • In un altro cambiamento di rottura, objectin JSDoc non è più anysotto noImplicitAny.

È possibile installare la versione generale di TypeScript 3.8 tramite NuGet o tramite NPM:

npm install typescript