Dieses Kapitel gibt einen Überblick über Strategien zur Migration von Codebasen von JavaScript zu TypeScript. Es werden auch Materialien für weiterführende Lektüre erwähnt.
Dies sind drei Strategien zur Migration zu TypeScript
Wir können eine Mischung aus JavaScript- und TypeScript-Dateien für unsere Codebasis unterstützen. Wir beginnen mit nur JavaScript-Dateien und wechseln dann immer mehr Dateien zu TypeScript.
Wir können unseren aktuellen (nicht-TypeScript-) Build-Prozess und unsere reine JavaScript-Codebasis beibehalten. Wir fügen statische Typinformationen über JSDoc-Kommentare hinzu und verwenden TypeScript als Typ-Checker (nicht als Compiler). Sobald alles korrekt typisiert ist, wechseln wir zum Bauen zu TypeScript.
Bei großen Projekten kann es während der Migration zu viele TypeScript-Fehler geben. Dann können Snapshot-Tests uns helfen, behobene und neue Fehler zu finden.
Weitere Informationen
Der TypeScript-Compiler unterstützt eine Mischung aus JavaScript- und TypeScript-Dateien, wenn wir die Compiler-Option --allowJs verwenden
Zuerst gibt es nur JavaScript-Dateien. Dann wechseln wir die Dateien nach und nach zu TypeScript. Währenddessen wird unsere Codebasis weiter kompiliert.
So sieht tsconfig.json aus
{
"compilerOptions": {
···
"allowJs": true
}
}Weitere Informationen
Dieser Ansatz funktioniert wie folgt
--noEmit). Zusätzlich zur Compiler-Option --allowJs (zum Zulassen und Kopieren von JavaScript-Dateien) müssen wir auch die Compiler-Option --checkJs verwenden (zum Typ-Prüfen von JavaScript-Dateien)..js-Dateien zu .ts-Dateien ist jetzt nicht dringend, da die gesamte Codebasis bereits vollständig statisch typisiert ist. Wir können jetzt sogar Typdateien (Dateiendung .d.ts) erstellen.So geben wir statische Typen für reines JavaScript über JSDoc-Kommentare an
/**
* @param {number} x - The first operand
* @param {number} y - The second operand
* @returns {number} The sum of both operands
*/
function add(x, y) {
return x + y;
}/** @typedef {{ prop1: string, prop2: string, prop3?: number }} SpecialType */
/** @typedef {(data: string, index?: number) => boolean} Predicate */Weitere Informationen
§4.4 „Verwenden des TypeScript-Compilers für reine JavaScript-Dateien“
„Wie wir bei Unsplash schrittweise zu TypeScript migriert sind“ von Oliver Joseph Ash
In großen JavaScript-Projekten kann der Wechsel zu TypeScript zu viele Fehler verursachen – unabhängig davon, welchen Ansatz wir wählen. Dann kann das Snapshot-Testen der TypeScript-Fehler eine Option sein
Weitere Informationen
Wir haben uns kurz mit Strategien zur Migration zu TypeScript beschäftigt. Zwei weitere Tipps