Was ist der Unterschied zwischen JavaScript und TypeScript?
JavaScript ist eine dynamisch typisierte Sprache, die direkt im Browser oder in Node.js ausgeführt wird. TypeScript erweitert JavaScript um statische Typisierung. Der TypeScript-Code wird vor der Ausführung nach JavaScript kompiliert. Das verbessert Wartbarkeit und Fehlersicherheit.
Was bedeutet statische Typisierung in TypeScript?
Statische Typisierung bedeutet, dass Typen zur Compile-Zeit geprüft werden. Viele Fehler werden erkannt, bevor der Code läuft. Das ist besonders in großen Codebasen hilfreich.
Was ist Structural Typing in TypeScript?
TypeScript verwendet strukturelle Typisierung statt nominaler Typisierung. Entscheidend ist die Struktur eines Objekts, nicht dessen expliziter Typname. Dadurch ist der Code sehr flexibel.
Was ist der Unterschied zwischen interface und type?
Interfaces sind erweiterbar und eignen sich gut für öffentliche APIs. type ist flexibler und kann auch Union- und Intersection-Typen abbilden. Beide werden häufig kombiniert eingesetzt.
Was sind Union Types?
Union Types erlauben mehrere mögliche Typen für eine Variable. Der Code muss alle Varianten korrekt behandeln. Sie erhöhen Ausdrucksstärke und Typsicherheit.
Was sind Generics und warum sind sie wichtig?
Generics ermöglichen typsichere Wiederverwendung von Code. Funktionen oder Klassen bleiben flexibel, ohne auf Typprüfung zu verzichten. Sie sind essenziell für skalierbare APIs.
Was ist Type Narrowing?
Type Narrowing reduziert einen Union-Typ auf einen konkreten Typ. Das geschieht z. B. durch typeof, instanceof oder Guards. Dadurch wird sicherer Code möglich.
Was ist ein Type Guard?
Ein Type Guard ist eine Funktion oder Bedingung zur Typprüfung. Sie hilft TypeScript, den Typ korrekt abzuleiten. Eigene Guards verbessern Lesbarkeit.
Was ist das any Problem?
any deaktiviert die Typprüfung vollständig. Es untergräbt die Vorteile von TypeScript. any sollte nur als letzte Lösung genutzt werden.
Was ist unknown und warum ist es besser als any?
unknown ist ein sicherer Gegenpart zu any. Vor der Nutzung muss der Typ geprüft werden. Das erzwingt sauberen Code.
Was ist der Unterschied zwischen let var und const?
var ist funktionsweit gescoped und kann zu Fehlern führen. let und const sind block-scoped. const verhindert Neuzuweisung und wird bevorzugt.
Was ist Hoisting in JavaScript?
Hoisting verschiebt Deklarationen an den Anfang des Scopes. var wird initialisiert mit undefined. let und const sind zwar hoisted, aber nicht nutzbar vor der Deklaration.
Was ist Closure?
Eine Closure erlaubt Zugriff auf Variablen aus dem äußeren Scope. Sie entsteht beim Erzeugen von Funktionen. Closures werden häufig für Kapselung genutzt.
Was ist Event Loop?
Der Event Loop steuert asynchrone Ausführung. Er verarbeitet Call Stack, Microtasks und Macrotasks. Dadurch bleibt JavaScript nicht-blockierend.
Unterschied zwischen Promise und async/await?
Promises sind die Basis für asynchronen Code. async/await ist syntaktischer Zucker darüber. Es macht Code lesbarer und linearer.
Was sind Microtasks?
Microtasks haben höhere Priorität als normale Tasks. Promises werden als Microtasks ausgeführt. Sie laufen vor Rendering und I/O.
Was ist Debouncing und Throttling?
Debouncing verzögert Funktionsaufrufe bis zur Ruhephase. Throttling begrenzt Aufrufe pro Zeitintervall. Beide verbessern Performance.
Was ist Prototypenvererbung?
JavaScript nutzt prototypische Vererbung. Objekte erben Eigenschaften über ihre Prototype Chain. Klassen sind nur syntaktischer Zucker.
Was ist this und warum ist es schwierig?
this hängt vom Aufrufkontext ab. In JavaScript kann es leicht unerwartete Werte annehmen. Arrow Functions binden this lexikalisch.
Was ist Immutable State?
Immutable State bedeutet, dass Objekte nicht verändert werden. Stattdessen werden neue Kopien erstellt. Das ist wichtig für Predictability und State Management.
Was ist Deep Copy vs Shallow Copy?
Shallow Copy kopiert nur Referenzen. Deep Copy kopiert verschachtelte Objekte vollständig. Fehler entstehen oft durch falsche Kopien.
Was ist Tree Shaking?
Tree Shaking entfernt ungenutzten Code beim Bundling. Es reduziert Bundle-Größe. ES Modules ermöglichen dieses Feature.
Was ist Module Federation?
Module Federation erlaubt das dynamische Laden von Modulen zur Laufzeit. Es wird oft in Micro-Frontend-Architekturen genutzt. Webpack unterstützt dies.
Was ist strict mode?
Strict Mode erzwingt strengere Regeln. Er verhindert unsichere Patterns. TypeScript nutzt ihn standardmäßig.
Was sind Decorators in TypeScript?
Decorators erweitern Klassen Methoden oder Properties. Sie werden häufig in Frameworks wie Angular verwendet. Sie ermöglichen Metaprogrammierung.
Was ist ESLint und warum ist es wichtig?
ESLint analysiert Code statisch. Es erzwingt Coding-Standards. Das verbessert Codequalität und Konsistenz.
Was ist Babel?
Babel transpiliert modernen JavaScript-Code. Er stellt Browser-Kompatibilität sicher. Babel arbeitet oft mit TypeScript zusammen.
Was ist Runtime vs Compile-Time Fehler?
Compile-Time Fehler werden vor Ausführung erkannt. Runtime Fehler treten erst zur Laufzeit auf. TypeScript reduziert Runtime Fehler deutlich.
Wann ist TypeScript besonders sinnvoll?
Bei großen Teams und komplexen Anwendungen. Typen dienen als Dokumentation. Refactorings werden sicherer.
Zuletzt geändertvor einem Monat