Optimierung der Leistung von TypeScript-Anwendungen: Tipps und Beispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum ist die Leistung von TypeScript wichtig?

TypeScript hat sich zum De-facto-Standard für die Entwicklung großer Webanwendungen entwickelt. Es fügt JavaScript eine statische Typisierung hinzu, was hilft, viele Fehler bereits in der Entwicklungsphase zu vermeiden. Wenn man jedoch der Leistung keine Aufmerksamkeit schenkt, kann eine TypeScript-Anwendung langsamer laufen als ihr Pendant in reinem JavaScript. Dies liegt daran, dass der Compiler zusätzliche Prüfungen hinzufügt und komplexe Typen sowohl den Build als auch die Codeausführung verlangsamen können.

In diesem Artikel werden wir die wichtigsten Methoden zur Optimierung von TypeScript-Anwendungen behandeln: von der Konfiguration der tsconfig.json bis zum Schreiben effizienten Codes. Wenn Sie diese Empfehlungen befolgen, können Sie sowohl den Entwicklungsprozess als auch das Endprodukt beschleunigen.



1. Optimierung der TypeScript-Konfiguration

Das Erste, womit man beginnen sollte, ist die korrekte Einrichtung der Datei tsconfig.json. Falsche oder überflüssige Optionen können die Kompilierung erheblich verlangsamen.



1.1. Deaktivieren Sie unnötige Prüfungen in der Produktion

Für den Produktions-Build wird empfohlen, Optionen zu deaktivieren, die die Codeausführung nicht beeinflussen, aber die Kompilierung verlangsamen:

{  "compilerOptions": {    "strict": true,         // Nur für die Entwicklung aktivieren    "noUnusedLocals": false,    "noUnusedParameters": false,    "skipLibCheck": true    // Typprüfung in node_modules überspringen  }}

Die Option skipLibCheck ist besonders nützlich – sie zwingt den Compiler, die Typprüfung in Bibliotheken zu ignorieren, was den Build um 20-30% beschleunigen kann.



1.2. Verwenden Sie incremental zur Beschleunigung wiederholter Builds

Aktivieren Sie die inkrementelle Kompilierung. TypeScript speichert Informationen über den vorherigen Build und kompiliert nur geänderte Dateien neu:

{  "compilerOptions": {    "incremental": true,    "tsBuildInfoFile": ".tsbuildinfo"  }}

Dies ist besonders relevant für große Projekte, bei denen eine vollständige Neukompilierung Minuten dauern kann.



1.3. Konfigurieren Sie target und module

Setzen Sie target auf einen modernen Standard (z.B. ES2020 oder ESNext). Dies ermöglicht TypeScript, kürzeren und schnelleren Code zu generieren, da keine alten Funktionen emuliert werden müssen:

{  "compilerOptions": {    "target": "ES2020",    "module": "ESNext"  }}


2. Optimierung von Typen und Datenstrukturen

Komplexe oder schlecht entworfene Typen können sowohl die Kompilierung als auch die Codeausführung verlangsamen. Betrachten wir die wichtigsten Techniken.



2.1. Vermeiden Sie übermäßige Union-Typen

Je mehr Varianten ein Union-Typ hat, desto langsamer arbeitet die Typprüfung. Zum Beispiel anstelle von:

type Status = 'loading' | 'success' | 'error' | 'idle' | 'pending' | 'canceled';

Ist es besser, nach Logik in Untertypen aufzuteilen:

type LoadingStatus = 'loading' | 'idle';type ResultStatus = 'success' | 'error' | 'pending' | 'canceled';type Status = LoadingStatus | ResultStatus;

Dies beschleunigt nicht nur die Kompilierung, sondern macht den Code auch lesbarer.



2.2. Verwenden Sie interface anstelle von type für Objekte

Obwohl type und interface weitgehend austauschbar sind, arbeitet interface bei der Typprüfung schneller, insbesondere in komplexen Hierarchien. Außerdem unterstützt interface Vererbung besser:

// Schnellerinterface User {  id: number;  name: string;}

// Langsamertype User = { id: number; name: string;};


2.3. Vermeiden Sie tiefe Verschachtelung von Typen

Tiefe rekursive Typen (z.B. für die Arbeit mit JSON) können den Compiler stark verlangsamen. Verwenden Sie Hilfsmittel wie Partial, Pick oder Omit anstelle manueller Beschreibungen:



                
                

Blogs

Buchempfehlungen