TypeScript
Next.js bietet eine TypeScript-orientierte Entwicklungserfahrung für den Aufbau Ihrer React-Anwendung.
Es verfügt über eine integrierte TypeScript-Unterstützung zum automatischen Installieren der erforderlichen Pakete und Konfigurieren der richtigen Einstellungen.
Neue Projekte
create-next-app
wird jetzt standardmäßig mit TypeScript ausgeliefert.
Bestehende Projekte
Fügen Sie Ihrem Projekt TypeScript hinzu, indem Sie eine Datei in .ts
/ .tsx
umbenennen. Führen Sie next dev
und next build
aus, um automatisch die erforderlichen Abhängigkeiten zu installieren und eine tsconfig.json
-Datei mit den empfohlenen Konfigurationsoptionen hinzuzufügen.
Wenn Sie bereits eine jsconfig.json
-Datei hatten, kopieren Sie die Compiler-Option paths
aus der alten jsconfig.json
in die neue tsconfig.json
-Datei und löschen Sie die alte jsconfig.json
-Datei.
Wir empfehlen Ihnen auch, next.config.ts
anstelle von next.config.js
für eine bessere Typrückschlussermittlung zu verwenden.
Minimale TypeScript-Version
Es wird dringend empfohlen, mindestens die Version v4.5.2
von TypeScript zu verwenden, um Syntaxfunktionen wie Typmodifikatoren bei Importnamen und Leistungsverbesserungen zu erhalten.
Typenüberprüfung in der Next.js-Konfiguration
Typenüberprüfung von next.config.js
Bei Verwendung der next.config.js
-Datei können Sie einige Typenüberprüfungen in Ihrer IDE mithilfe von JSDoc wie folgt hinzufügen:
Typenüberprüfung von next.config.ts
Sie können TypeScript verwenden und Typen in Ihrer Next.js-Konfiguration importieren, indem Sie next.config.ts
verwenden.
Hinweis: Die Modulauflösung in
next.config.ts
ist derzeit aufCommonJS
beschränkt. Dies kann zu Inkompatibilitäten mit ESM-only-Paketen führen, die innext.config.ts
geladen werden.
Statische Generierung und serverseitiges Rendering
Bei getStaticProps
, getStaticPaths
und getServerSideProps
können Sie die Typen GetStaticProps
, GetStaticPaths
bzw. GetServerSideProps
verwenden:
Hinweis:
satisfies
wurde in TypeScript 4.9 hinzugefügt. Wir empfehlen, auf die neueste Version von TypeScript zu aktualisieren.
API-Routen
Das Folgende ist ein Beispiel, wie Sie die integrierten Typen für API-Routen verwenden:
Sie können auch die Antwortdaten typisieren:
Benutzerdefinierte App
Wenn Sie eine benutzerdefinierte App
haben, können Sie den integrierten Typ AppProps
verwenden und den Dateinamen in ./pages/_app.tsx
ändern:
Pfadalias und baseUrl
Next.js unterstützt automatisch die "paths"
und "baseUrl"
Optionen aus der tsconfig.json
.
Sie können mehr über diese Funktion in der Dokumentation zu Modul-Pfadaliasen erfahren.
Inkrementelle Typprüfung
Seit v10.2.1
unterstützt Next.js inkrementelle Typprüfung, wenn diese in Ihrer tsconfig.json
aktiviert ist. Dies kann helfen, die Typprüfung in größeren Anwendungen zu beschleunigen.
TypeScript-Fehler ignorieren
Next.js bricht Ihren Produktionsbuild (next build
) ab, wenn in Ihrem Projekt TypeScript-Fehler vorhanden sind.
Wenn Sie möchten, dass Next.js gefährlich Produktionscode erstellt, auch wenn Ihre Anwendung Fehler enthält, können Sie den integrierten Typprüfungsschritt deaktivieren.
Stellen Sie bei Deaktivierung sicher, dass Sie Typprüfungen als Teil Ihres Build- oder Bereitstellungsprozesses durchführen, da dies andernfalls sehr gefährlich sein kann.
Öffnen Sie next.config.ts
und aktivieren Sie die Option ignoreBuildErrors
in der TypeScript-Konfiguration:
Hinweis: Sie können
tsc --noEmit
ausführen, um TypeScript-Fehler selbst zu prüfen, bevor Sie bauen. Dies ist nützlich für CI/CD-Pipelines, in denen Sie TypeScript-Fehler vor der Bereitstellung prüfen möchten.
Benutzerdefinierte Typdeklarationen
Wenn Sie benutzerdefinierte Typen deklarieren müssen, könnten Sie versucht sein, next-env.d.ts
zu ändern. Diese Datei wird jedoch automatisch generiert, sodass alle Änderungen überschrieben werden. Erstellen Sie stattdessen eine neue Datei, nennen wir sie new-types.d.ts
, und referenzieren Sie diese in Ihrer tsconfig.json
:
Versionsänderungen
Version | Änderungen |
---|---|
v15.0.0 | Unterstützung für next.config.ts in TypeScript-Projekten hinzugefügt. |
v13.2.0 | Statisch typisierte Links in Beta verfügbar. |
v12.0.0 | SWC wird jetzt standardmäßig verwendet, um TypeScript und TSX für schnellere Builds zu kompilieren. |
v10.2.1 | Unterstützung für inkrementelle Typprüfung hinzugefügt, wenn in tsconfig.json aktiviert. |