Programmiersprache TypeScript 4.8 erlaubt Anpassung automatischer Importe

Version 4.8 erscheint mit den angekündigten Neuerungen für Null-Prüfungen und erlaubt es, Dateien bei automatischen Importen auszuschließen.

In Pocket speichern vorlesen Druckansicht
Schreibmaschine, Tastatur, Keyboard, Digitalisierung

(Bild: , gemeinfrei)

Lesezeit: 2 Min.
Von
  • Maika Möbus

Nach einer Beta-Version und einem Release Candidate hat Microsoft die Programmiersprache TypeScript 4.8 final veröffentlicht. Neu ist darin die Möglichkeit, automatische Importe anzupassen, um wahlweise Dateien auszuschließen. Die bereits mit Erscheinen der Beta und des RC angekündigten Features wie konsistentere Null-Prüfungen und ein strengerer Umgang mit Unconstrained Generics sind ebenfalls an Bord.

So kann der Typ unknown, der dem Union Type {} | null | undefined ähnelt, ebenfalls null, undefined und beliebige andere Typen annehmen. TypeScript 4.8 erlaubt daher seit der Beta Zuweisungen von unknown zu {} | null | undefined:

function f(x: unknown, y: {} | null | undefined) {
    x = y; // always worked
    y = x; // used to error, now works
}

Mit TypeScript 4.8 steht eine Editor-Präferenz bereit, um bestimmte Dateien bei Auto-Importen auzuschließen. Im Quellcodeeditor Visual Studio Code lassen sich Dateinamen oder Globs unter "Auto Import File Exclude Patterns" im Einstellungs-UI einfügen. Alternativ lassen sich die Dateinamen in einer .vscode/settings.json-Datei hinterlegen:

{
    // Note that `javascript.preferences.autoImportFileExcludePatterns` can be specified for JavaScript too.
    "typescript.preferences.autoImportFileExcludePatterns": [
      "**/node_modules/@types/node"
    ]
}

Das neue Feature soll beispielsweise dann nützlich sein, wenn sich bestimmte Module oder Bibliotheken in einer Kompilation nicht vermeiden lassen, man jedoch selten von dort importieren will.

An verschiedenen Stellen schraubt die neue Version an der Performance: Szenarien rund um --watch, --incremental und --build sollen schneller vonstattengehen. Bei einer recht großen internen Codebasis sind dadurch laut dem TypeScript-Team Zeiteinsparungen von 10 bis 25 Prozent bei vielen einfachen, üblichen Vorgängen möglich. Die Ergebnisse sind auf GitHub einsehbar.

Zu den abwärtsinkompatiblen Neuerungen zählt, dass sich Typen nicht in JavaScript-Dateien importieren oder exportieren lassen. Bisher ließ TypeScript den Import und Export von Entitäten zu, die in import- und export- Statements mit einem Typ, aber keinem Wert versehen waren. Das führte allerdings zu einem Fehler, da benannte Importe und Exporte für Werte, die nicht existieren, unter ECMAScript-Modulen einen Fehler hervorrufen.

In TypeScript 4.8 gibt daher in diesem Fall das Überprüfen einer JavaScript-Datei mittels --checkJs oder per // @ts-check-Kommentar einen Fehler aus.

// @ts-check

// Will fail at runtime because 'SomeType' is not a value.
import { someValue, SomeType } from "some-module";

/**
 * @type {SomeType}
 */
export const myValue = someValue;

/**
 * @typedef {string | number} MyType
 */

// Will fail at runtime because 'MyType' is not a value.
export { MyType as MyExportedType };

Das TypeScript-Team arbeitet bereits an der nächsten Minor-Version TypeScript 4.9, wie Interessierte anhand des Iterationsplans verfolgen können. Demnach soll die erste Beta am 20. September 2022 erscheinen. Die Programmiersprache, die ein Superset von JavaScript ist, belegt in der aktuellen Analyse des Berufsverbands IEEE den neunten Platz der auf dem Arbeitsmarkt gefragtesten Sprachen.

Alle Neuerungen in TypeScript 4.8 sind in Microsofts Entwicklerblog aufgeführt.

(mai)