Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

TypeScript 5.3 e attributi di importazione

TypeScript 5.3 introduce la feature Import Attributes che offre una sintassi sicura per l'importazione dei moduli
TypeScript 5.3 e attributi di importazione
TypeScript 5.3 introduce la feature Import Attributes che offre una sintassi sicura per l'importazione dei moduli
Link copiato negli appunti

TypeScript 5.3 rappresenta l'ultimo aggiornamento del linguaggio creato da Microsoft partendo dalle specifiche ECMAScript 6 e realizzando un'estensione di JavaScript. Questo rilascio presenta diverse novità interessanti tra cui un supporto stabile all'attributo resolution-mode per import type e il metodo Symbol.hasInstance per l'operatore instanceof. In questo post, però, vogliamo parlare di quella che è forse la feature più interessante della release. Essa riguarda gli attributi di importazione.

Perché Import Attributes

Con la proposta Import Attributes, precedentemente nota come "Import Assertions" nella forma con cui venne implementata in TypeScript 4.5, il linguaggio si arricchisce di una sintassi inline per le dichiarazioni d'importazione dei moduli con cui trasmettere più informazioni insieme allo specifier. L'applicazione iniziale di tali attributi è quella di supportare tipi aggiuntivi di moduli in stile JavaScript, a partire dai moduli JSON.

JavaScript presenta già delle modalità semplificate di importazione dei file di dati JSON ma nel caso di TypeScript la preoccupazione è stata quella di rendere sicuro tale processo. Individuando una sintassi che impedisse l'esecuzione arbitraria di codice, cosa che può avvenire ad esempio quando viene fornito un MIME type inatteso.

Import Attributes e sintassi

Import Attributes può essere utilizzato in scenari differenti. Come per esempio nel caso in cui si vogliano mettere a disposizione informazioni riguardo al formato atteso di un modulo. Un esempio della sua sintassi potrebbe essere quindi il seguente:

import obj from "./file.json" with { type: "json" };

In questo modo abbiamo la sicurezza che ciò che viene importato sia interpretato esclusivamente come JSON e non come del codice JavaScript eseguibile nascosto dietro l'estensione .json. TypeScript non opera una verifica degli attributi che sono invece specifici per l'host di riferimento. Questo vuol dire che essi saranno gestiti direttamente dal browser e a runtime così come i loro possibili errori.

Per quanto riguarda Import Assertions, di cui Import Attributes rappresenta appunto un'evoluzione, la sintassi utilizzata per la loro importazione verrà considerata deprecata nel prossimo futuro. La nuova feature ne prenderà il posto e i codici basati sulla sintassi precedente, cioè quelli incentrati sulla keyword assert, dovranno essere aggiornati.

Ti consigliamo anche