1 Punkte von doscm164 3 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen

Gestern wurde TypeScript 7 offiziell veröffentlicht. Mit dem in Go neu geschriebenen nativen Compiler (tsgo) ist es etwa 10-mal schneller geworden, aber die in TS5/6 als deprecated markierten Compiler-Optionen wurden vollständig entfernt, und der Standardwert von strict wurde ebenfalls auf true geändert — Projekte mit älteren tsconfig-Dateien lassen sich daher nicht einfach so upgraden.

Ich habe ein Codemod erstellt, das diesen mechanischen Teil automatisiert.

npx ts6to7 --dry # Vorschau (schreibt nichts)
npx ts6to7 # Anwenden

Was es macht:

  • bearbeitet tsconfig*.json direkt an Ort und Stelle — durch Bearbeitung mit jsonc-parser bleiben Kommentare und Formatierung unverändert
  • konvertiert entfernte Optionen in TS7-Äquivalente: target: es5ES2015, module: umd/amdESNext, moduleResolution: nodeNodeNext/Bundler, importsNotUsedAsValuesverbatimModuleSyntax usw.
  • faltet baseUrl in paths ein
  • hebt die typescript-Abhängigkeit auf ^7.0.0 an
  • falls strict nicht gesetzt war, wird es auf false fixiert — Dateien, die über extends andere Konfigurationen erben, werden nicht verändert, sondern nur mit einer Warnung versehen (weil die Basis-Config strict möglicherweise bereits setzt)
  • Dinge, die sich nicht sicher automatisch umwandeln lassen (ES5-spezifische Laufzeitumgebungen, Tools auf Basis alter Compiler-APIs wie ts-node/ts-jest, fehlende types-Arrays usw.), werden als dateibezogene Checkliste „manuelle Prüfung erforderlich“ ausgegeben

Direkte Migration auch von TypeScript 5 aus möglich: Es ist nicht nötig, erst 6 zu durchlaufen. Optionen aus der TS5-Ära wie ignoreDeprecations sowie prepend bei Projekt-Referenzen werden ebenfalls bereinigt.

Monorepos werden ebenfalls unterstützt (Scan aller Pakete).

Aktuell ist Version 0.2.0. Falls es Fälle gibt, in denen tsconfig falsch umgewandelt wird, wäre es eine große Hilfe, wenn ihr ein Issue mit der betreffenden tsconfig anhängt.

Noch keine Kommentare.

Noch keine Kommentare.