
Blazor ermöglicht C# im Browser, doch für DOM-nahe Funktionen bleibt JavaScript nötig. Durch die Integration von TypeScript in Blazor-Projekte entsteht typsichere JS Interop mit besserer Wartbarkeit. Mit .NET 10, npm, tsconfig und MSBuild lässt sich eine strukturierte TypeScript-Umgebung aufbauen, inklusive Konstruktor-Interop und sauberem Disposal-Pattern.
Als Blazor-Entwickler kennt man das Gefühl: Man hat das Backend und die Blazor-Komponenten perfekt im Griff, aber dann kommt JavaScript – und plötzlich fehlt einem die gewohnte Typsicherheit.
TypeScript schließt genau diese Lücke. Es bringt statische Typisierung in die JavaScript-Welt und macht den Code wartbarer, lesbarer und weniger fehleranfällig.
In diesem Artikel zeige ich, wie TypeScript in einem Blazor-Projekt integriert und genutzt werden kann – inklusive Kommunikation zwischen Blazor und TypeScript über JSInterop.
TypeScript ist eine von Microsoft entwickelte, typisierte Übermenge von JavaScript, die zu reinem JavaScript kompiliert. TypeScript ergänzt JavaScript um statische Typprüfungen, Interfaces, generische Typen und weitere Sprachfeatures.
Für C#-Entwickler ist TypeScript besonders zugänglich – viele Konzepte wie Interfaces, Generics, Enums und Klassen sind direkt übertragbar.
Für dieses Beispiel wird ein bestehendes Blazor WebAssembly-Projekt benötigt. Außerdem benötigen wir Node.js und NPM für die TypeScript-Toolchain.
Im Projektordner die Konsole öffnen und folgende Befehle ausführen:
npm init -y
npm install --save-dev typescript
Eine tsconfig.json Datei im Projektordner erstellen:

Nun kann eine TypeScript-Datei erstellt werden. Im wwwroot-Ordner eine Datei app.ts erstellen:

TypeScript wird mit dem Befehl tsc zu JavaScript kompiliert. Die kompilierte Datei entsteht in dem in der tsconfig.json definierten Ordner. In diesem Beispiel in wwwroot/js/app.js
Durch die Integration in den Build-Prozess von .NET via der csproj Datei kann die Kompilierung automatisch beim Build-Vorgang erfolgen.
Die kompilierte JavaScript-Datei muss nun in die Blazor-Anwendung eingebunden werden. Dies erfolgt in der index.html Datei im wwwroot-Ordner.
Eine der stärksten Fähigkeiten von Blazor ist die Fähigkeit, JavaScript und .NET-Code miteinander kommunizieren zu lassen. Dies geschieht über JSInterop.

Im obigen Beispiel wird die Funktion showAlert aus TypeScript aufgerufen. Die Funktion erwartet einen String-Parameter und gibt keinen Wert zurück (ValueTask).
Durch die TypeScript-Typisierung können Fehler frühzeitig erkannt werden – genau das, was C#-Entwickler aus ihrer gewohnten Umgebung kennen.
Die Integration von TypeScript in Blazor-Projekte ermöglicht eine typisierte und damit sicherere JavaScript-Entwicklung. C#-Entwickler profitieren dabei besonders, da TypeScript viele bekannte Konzepte übernimmt.
Die Kommunikation über JSInterop bleibt erhalten und wird durch TypeScript sogar noch übersichtlicher, da Typen klar definiert werden können.
Als Best Practices empfehlen sich dabei: TypeScript konsequent über tsconfig konfigurieren, Typen für alle JSInterop-Schnittstellen explizit definieren und die Kompilierung fest in den .NET-Build-Prozess integrieren.

Unser Geschäftsführer Tibor Csizmadia und unser Kundenbetreuer Jens Walter stehen Ihnen persönlich zur Verfügung. Profitieren Sie von unserer langjährigen Erfahrung und erhalten Sie eine kompetente Beratung in einem unverbindlichen Austausch.