TypeScript
Next.js 內建 TypeScript 支援,當您使用 create-next-app
建立新專案時,會自動安裝必要的套件並配置適當的設定。
若要將 TypeScript 添加到現有專案,請將檔案重新命名為 .ts
/ .tsx
。執行 next dev
和 next build
會自動安裝必要的依賴項,並添加一個包含推薦配置選項的 tsconfig.json
檔案。
小知識:如果您已經有
jsconfig.json
檔案,請將paths
編譯器選項從舊的jsconfig.json
複製到新的tsconfig.json
檔案中,並刪除舊的jsconfig.json
檔案。
範例
類型檢查 next.config.ts
您可以在 Next.js 配置中使用 TypeScript 並導入類型,方法是使用 next.config.ts
。
小知識:
next.config.ts
中的模組解析目前僅限於CommonJS
。這可能導致與僅支援 ESM 的套件在next.config.ts
中載入時不相容。
當使用 next.config.js
檔案時,您可以使用 JSDoc 在 IDE 中添加一些類型檢查,如下所示:
靜態生成和伺服器端渲染
對於 getStaticProps
、getStaticPaths
和 getServerSideProps
,您可以分別使用 GetStaticProps
、GetStaticPaths
和 GetServerSideProps
類型:
小知識:
satisfies
是在 TypeScript 4.9 中添加的。我們建議升級到最新版本的 TypeScript。
使用 API 路由
以下是如何在 API 路由中使用內建類型的範例:
您還可以標記響應數據的類型:
使用自訂 App
如果您有 自訂 App
,您可以使用內建類型 AppProps
並將檔案名稱更改為 ./pages/_app.tsx
,如下所示:
增量類型檢查
自 v10.2.1
起,Next.js 支援 增量類型檢查,當在您的 tsconfig.json
中啟用時,這可以幫助加速大型應用程式中的類型檢查。
在生產環境中禁用 TypeScript 錯誤
當您的專案中存在 TypeScript 錯誤時,Next.js 會使您的 生產構建 (next build
) 失敗。
如果您希望 Next.js 即使在應用程式存在錯誤時也能危險地生成生產程式碼,您可以禁用內建的類型檢查步驟。
如果禁用,請確保在構建或部署過程中運行類型檢查,否則這可能非常危險。
打開 next.config.ts
並在 typescript
配置中啟用 ignoreBuildErrors
選項:
小知識:您可以執行
tsc --noEmit
來在構建前自行檢查 TypeScript 錯誤。這對於您希望在部署前檢查 TypeScript 錯誤的 CI/CD 流程非常有用。
自訂類型聲明
當您需要聲明自訂類型時,您可能會想要修改 next-env.d.ts
。但是,此檔案是自動生成的,因此您所做的任何更改都將被覆蓋。相反,您應該創建一個新檔案,讓我們稱之為 new-types.d.ts
,並在您的 tsconfig.json
中引用它:
版本變更
版本 | 變更 |
---|---|
v15.0.0 | 新增對 TypeScript 專案的 next.config.ts 支援。 |
v13.2.0 | 靜態類型連結在 beta 版中可用。 |
v12.0.0 | 現在預設使用 SWC 來編譯 TypeScript 和 TSX,以實現更快的構建。 |
v10.2.1 | 當在您的 tsconfig.json 中啟用時,新增對 增量類型檢查 的支援。 |