Entwicklung & Code
TypeScript 5.9 sorgt für minimalistische tsconfig.json-Dateien
Microsoft hat Version 5.9 seiner Programmiersprache TypeScript veröffentlicht. Darin finden sich einige neue Features wie verschlankte und aktualisierte tsconfig.json per --init
-Flag. Unter der Haube arbeitet das TypeScript-Team weiterhin am Umsetzen der nativen Portierung nach Go, die jedoch nicht in das aktuelle Release einfließt.
tsconfig.json wirft Ballast ab
Der TypeScript-Compiler kann mit dem --init
-Flag eine tsconfig.json-Datei innerhalb des aktuellen Projektverzeichnisses erstellen. Wie das TypeScript-Team ausführt, sei diese Datei jedoch über die letzten Jahre hinweg so weit angewachsen, dass die meisten Developer den Großteil ihres Inhalts direkt löschten. Dazu zählten zahlreiche auskommentierte Einstellungen mitsamt Beschreibungen.
Die Datei ist daher nun entschlackt und soll besser auf die aktuellen Nutzerbedürfnisse abgestimmt sein. So enthält sie unter anderem die Einstellung, dass --target
auf esnext
(ESNext, die nächste Version des ECMAScript-Standards) gesetzt ist.
In TypeScript 5.9 sieht eine mit tsc --init
– ohne Verwendung zusätzlicher Flags – generierte tsconfig.json wie folgt aus:
{
// Visit to read more about this file
"compilerOptions": {
// File Layout
// "rootDir": "./src",
// "outDir": "./dist",
// Environment Settings
// See also _modules
"module": "nodenext",
"target": "esnext",
"types": [],
// For nodejs:
// "lib": ["esnext"],
// "types": ["node"],
// and npm install -D @types/node
// Other Outputs
"sourceMap": true,
"declaration": true,
"declarationMap": true,
// Stricter Typechecking Options
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
// Style Options
// "noImplicitReturns": true,
// "noImplicitOverride": true,
// "noUnusedLocals": true,
// "noUnusedParameters": true,
// "noFallthroughCasesInSwitch": true,
// "noPropertyAccessFromIndexSignature": true,
// Recommended Options
"strict": true,
"jsx": "react-jsx",
"verbatimModuleSyntax": true,
"isolatedModules": true,
"noUncheckedSideEffectImports": true,
"moduleDetection": "force",
"skipLibCheck": true,
}
}
Support für geplantes ECMAScript-Feature und Expandable Hovers
TypeScript 5.9 bringt darüber hinaus Support für das ECMAScript-Proposal Deferring Module Evaluation durch die neue Syntax import defer
. Sie erlaubt das Importieren eines Moduls, ohne dieses und seine Dependencies sofort auszuführen. Das soll Entwicklerinnen und Entwicklern mehr Kontrolle verschaffen. Das Proposal befindet sich derzeit auf der vorletzten Stufe zur Fertigstellung, „Stage 3 (Candidate)„.
Neben weiteren Updates ist auch ein Preview-Feature mit an Bord: Expandable Hovers. In Visual Studio Code erscheinen Informationen zum TypeScript-Code, wenn Entwickler mit der Maus darüber hovern. Diese Infos lassen sich nun ausklappen, um weitere Details anzuzeigen. Die neue Funktion läuft unter den Namen Expandable Hovers oder Quick Info Verbosity.
Wie ausführlich die Infos beim Hovern über TypeScript-Code in VS Code erscheinen, können Developer nun einstellen.
(Bild: Microsoft Developer Blog)
Die Entwicklung des neuen Features in Zusammenarbeit mit dem VS-Code-Team lässt sich auf GitHub mitverfolgen: Im TypeScript-Repo und im VS-Code-Repo befinden sich entsprechende Pull Requests.
Weitere Ausführungen zu den Updates in TypeScript 5.9 liefert Microsofts Entwicklerblog.
Die nächsten Schritte – auf dem Weg zur Go-Portierung
Die Portierung des TypeScript-Compilers und weiterer Komponenten in die Programmiersprache Go startete Anfang dieses Jahres und soll eine bis zu zehnfache Beschleunigung des Compilers erlauben. In TypeScript 7.0 soll die native Go-Implementierung abgeschlossen sein – doch zunächst einmal wird TypeScript 6.0 erscheinen. Diese Version soll Entwicklerinnen und Entwicklern als Wendepunkt dienen, um ihre Codebasen für TypeScript 7.0 fit zu machen.
Zwar können im nächsten Release neue Features und Updates enthalten sein, doch der Fokus wird klar auf der Vorbereitung auf Version 7.0 liegen, erklärt das TypeScript-Team. Es geht davon aus, dass sich die meisten Projekte ohne größere Hürden auf die Version 6.0 – die mit TypeScript 5.9 vollständig API-kompatibel sein soll – aktualisieren lassen.
Neue Infos zu TypeScript 7.0 sollen bald folgen. In Form von Native Previews lässt sich eine Vorschau darauf bereits in Visual Studio Code ausprobieren und in Projekten installieren.
(mai)