Progammiersprache: Kotlin/JS Inspection Pack vereinfacht die Compiler-Migration
Das neue Plug-in Kotlin/JS Inspection Pack bietet Inspections und Quick-Fixes für die Migration zum Kotlin/JS IR Compiler.
- Maika Möbus
Eine Woche nach dem letzten Kotlin-Release 1.5.30 hat die hinter der Programmiersprache stehende Softwarefirma JetBrains das Plug-in Kotlin/JS Inspection Pack veröffentlicht. Es soll sowohl bei der Erstellung neuer Projekte mit Kotlin/JS als auch bei der Migration bestehender Projekte zum neuen Kotlin/JS IR (Intermediate Representation) Compiler unterstützen. Dieser ist in Kotlin derzeit als Beta-Version an Bord und soll den Legacy Compiler ablösen.
Vorschläge und Highlighting
Bei Interfaces und Klassen, inklusive data class
, die aus reinen JavaScript-Klassen stammen, kann es zu der ClassCastException
-Fehlermeldung kommen. Das tritt etwa bei den React-Klassen State
und Props
auf und liegt daran, dass der IR Compiler annimmt, sie seien Kotlin-Objekte anstatt nicht im Code definierter JavaScript-Objekte. An dieser Stelle soll das Kotlin/JS Inspection Pack ansetzen, indem es solche Klassen und Interfaces durch Highlighting kenntlich macht und vorschlägt, sie in externe Interfaces umzuwandeln:
Zudem bietet das Inspection Pack Vorschläge für einen Workaround im Umgang mit externen Interfaces. Das Zuweisen von Werten an immutable (unveränderbare) Eigenschaften wäre erst nach dem Erstellen von Objekten mittels js()
oder jsObject()
möglich. Das lässt sich allerdings, wie das Plug-in vorschlägt, durch die Verwandlung solcher Eigenschaften in mutable (veränderbare) Eigenschaften mithilfe von var
umgehen.
Auch schlägt das Kotlin/JS Inspection Pack vor, Boolesche Eigenschaften in externen Interfaces als nullable
zu spezifizieren. Das soll helfen, einen weiteren ClassCastException
-Fehler zu vermeiden, denn während diese Werte in JavaScript null
oder undefined
sein können, verlangt Kotlin deren explizite Spezifizierung.
Verfügbarkeit und Voraussetzungen
Das Kotlin/JS Inspection Pack steht bei JetBrains zum Download zur Verfügung. Es lässt sich sowohl mit IntelliJ IDEA als auch mit Android Studio nutzen.
Zusätzlich empfiehlt JetBrains, sich in das neue Kotlin/JS IR Backend einzulesen und auch den Kotlin/JS-Migrationsguide zu berücksichtigen. Kotlin selbst ist derzeit in Version 1.5.30 verfügbar, im November soll Kotlin 1.6 erscheinen.
Weitere Informationen zum Kotlin/JS Inspection Pack bietet der JetBrains-Blog.
(mai)