Viele Neuigkeiten für Entwickler in TypeScript 2.6

TypeScript 2.6 veröffentlicht: neues Refactoring & Localization-Flag
Kommentare

Zwei Wochen nach der Veröffentlichung des Release Candidates von TypeScript 2.6 steht nun das finale Release der neuen Version bereit. TypeScript 2.6 bringt einige neue Features und Verbesserungen für Entwickler mit, beispielsweise --strictFunctionTypes und eine Unterstützung für das Refactoring von altem JavaScript-Code.

Ein schnellerer --watch-Mode, Fehler per Kommentar unterdrücken und übersetzte Mitteilungen des eigenständigen TypeScript-Compilers via npm: das alles gehört zu den Neuerungen in TypeScript 2.6. Zwei Monate nach dem Release von Version 2.5 steht die neue Version nun für Nutzer von Visual Studio 2015 und Visual Studio 2017 ab Version 15.2 zur Verfügung. Ein Support für weitere Editoren soll folgen, ist allerdings nicht unmittelbar mit dem Release der neuen Sprachversion verfügbar.

Contravariant Parameter Types

Mit --strictFunctionTypes bringt TypeScript 2.6 ein neues --strict-Modus-Flag mit. Damit werden die Parameter aller Function Types, die nicht aus einer Methode stammen, strikt kontravariant verglichen. Dies solle die Fehlersuche im Code erleichtern. Genauer beschrieben wird das neue --strict-Modus-Flag von Daniel Rosenwasser, Program Manager für TypeScript, im TypeScript-Blog. Dort weist er auch darauf hin, dass –strictFunctionTypes zwar als opt-in-Parameter realisiert wurde, allerdings automatisch aktiviert wird, wenn –strict verwendet wird.  Eine manuelle Deaktivierung via tsconfig.json-File ist allerdings möglich:

{
    "compilerOptions": {
        "strict": true,
        "strictFunctionTypes": false
    }
}

Weitere Neuerungen

Mit dem --locale-Flag kann im eigenständigen TypeScript-Compiler nun festgelegt werden, dass Meldungen in einer zuvor festgelegte Sprache ausgegeben werden. Die Sprachenauswahl kann auf der Options-Page des Compilers nachgelesen werden; für Spanisch sieht das dann so aus:

$ tsc --pretty --locale es
foo.ts(1,1): error TS2362: La parte izquierda de una operación aritmética debe ser de tipo "any", "number" o un tipo enum.
'hello' * 1

Außerdem soll der --watch-Modus nun schneller sein wenn es um die Arbeit an großen Projekten geht, die viele ECMAScript-Module enthalten. Dazu arbeitet der --watch-Modus nun stärker inkrementell: Statt alle Dateien erneut zu verarbeiten, werden künftig nur noch die tatsächlich veränderten Dateien von TypeScript zu ES2016, ES2015, ES5 und ES3 transformiert.

Mit dem Code-Kommentar @ts-ignore können in TypeScript 2.6 nun außerdem alle Fehlermeldungen unterdrückt werden, die durch die darauffolgende Codezeile hervorgerufen werden. Das TypeScript-Team rät jedoch dazu, vorsichtig mit dem neuen Kommentar umzugehen und die Verwendung im Code zu begründen.

API Summit 2017

Web APIs mit moderner Web-Technologie konsumieren

mit Rainer Stropek (software architects)

API First mit Swagger & Co.

mit Thilo Frotscher (Freiberufler)

Refactoring alten Codes & Breaking Changes

Zu den weiteren Neuerungen zählt die Möglichkeit zum Refacoring von JSDocs zu TypeScript Annotations. Das sei vor allem für die Migration alten JavaScript-Codes und in Kombination mit dem Quick Fix any sinnvoll, um Code schneller eingeben zu können.

Wichtig zu wissen für Entwickler ist außerdem, dass einige der Minor-Changes an der neuen Version zu Problemen mit bestehenden Codebases führen können. Der Blogpost zum Release führt folgende Breaking Changes an:

  • Write only references are now considered unused under --noUnusedLocals and --noUnusedParameters.
  • In ambient contexts (e.g. declaration files, and declare module blocks), expressions are now disallowed in defaultexports.
  • Uninhabitable types resulting from intersections (number & string, „foo“ & 42, etc.) will simplify to never when placed in a union.
  • Various organizational changes have been made to DOM declarations in lib.d.ts.

Außerdem wurde das getSymbolDisplayBuilder API als deprecated markiert.

Einen Überblick über alle wichtigen Änderungen gibt der Blogpost zum Release von Daniel Rosenwasser; weitere Informationen können auf der What’s New-Page auf GitHub gefunden werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -