Bald veraltet: TypeScript 5.3 Beta verzichtet auf Assertions
Die neue Beta-Version 5.3 von TypeScript bietet insbesondere den Import von Attributen, die das zu erwartende Format ankündigen und die Assertions ablösen.
Version 5.3 Beta von TypeScript, der beliebten typensicheren JavaScript-Erweiterung, geht in puncto Sicherheit einen Schritt weiter: Sie ermöglicht den Import von Attributen, die das zu erwartende Format eines Imports mitteilen. Ein Beispiel des TypeScript-Teams:
import obj from "./something.json" with { type: "json" };
Die Information "json"
stellt sicher, dass es sich um Json-Code handelt und nicht um ein JavaScript-Executable mit der Endung .json, das Schaden anrichten kann. Was das Attribut enthält, ist für TypeScript gleichgültig, und es überlässt die Interpretation dem Browser oder der Runtime. Theoretisch wäre möglich:
import * as foo from "./foo.js" with { type: "fluffy bunny" };
sofern der Browser den Type Fluffy Bunny verarbeiten kann. Auch die Funktion import()
kann Attribute verarbeiten:
const obj = await import("./something.json", {
with: { type: "json" }
});
Importattribute werden Import-Assertions ablösen, die es seit Version 4.5 in TypScript gibt. Entwicklerinnen und Entwickler sollten älteren Code also überarbeiten und assert
-Funktionen in solche mit with
ändern.
Neu ist auch ein resolution-mode
beim Import, der den Modus import
oder require
festlegt. Ein Beispiel:
import type { TypeFromRequire } from "pkg" with {
"resolution-mode": "require"
};
import type { TypeFromImport } from "pkg" with {
"resolution-mode": "import"
};
export interface MergedType extends TypeFromRequire, TypeFromImport {}
Weitere Neuerungen in Version 5.3 betreffen beispielsweise einige Methoden des Narrowing oder eine genauere PrĂĽfung des super
-Zugriffs auf die Basis-Klasse. Weitere Details finden sich in der Ankündigung im Developer-Blog. Interessenten können die neue Version über NuGet laden oder über npm mit dem Befehl:
npm install -D typescript@beta
(who)