Viele Neuigkeiten für Entwickler in TypeScript 2.6

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

Ann-Cathrin Klose

© typescriptlang.org

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.

For free: The iJS React Cheat Sheet

You want to get started with React?
Our Cheat Sheet includes all the most important snippets.
Get the sheet for free!

Download for free

 

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

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.

Verwandte Themen:

Geschrieben von
Ann-Cathrin Klose
Ann-Cathrin Klose
Ann-Cathrin Klose hat allgemeine Sprachwissenschaft, Geschichte und Philosophie an der Johannes Gutenberg-Universität Mainz studiert. Bereits seit Februar 2015 arbeitete sie als redaktionelle Assistentin bei Software & Support Media und ist seit Oktober 2017 Redakteurin. Zuvor war sie als freie Autorin tätig, ihre ersten redaktionellen Erfahrungen hat sie bei einer Tageszeitung gesammelt.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: