簡體   English   中英

在大型 TypeScript 項目中共享類型的最佳方式?

[英]The best way to share types in a large TypeScript project?

我正在開發一個在 TypeScript 上編寫的大型 React 應用程序。 我在單獨的文件中聲明了許多常見類型,每次我需要一個類型時我都會導入它。 它運作良好,但創建了大量不同的進口,我絕對不喜歡。

另一種選擇是使用 .d.ts 文件來全局聲明類型,並且能夠在不顯式導入的情況下使用類型。 這被認為是一種更好的做法還是我應該繼續進口?

我認為對此的常識方法是最好的。 例如,我們現在正在一個大型 React 應用程序中工作,使用 monorepo 和共享組件的共享存儲庫。 所以我們有關於聲明和組件之類的規則:

  • 如果您在多個地方使用類型/接口,它會進入 ~shared/lib/types.ts 文件
  • 如果您有一個在多個地方使用的組件,它會被重構到 ~shared/components 文件夾
  • 如果你擴展一個類型/接口,它可以在本地聲明,但只要它不會被多次使用

一旦人們習慣了這些簡單的規則,開發工作就會變得容易得多。 開發人員習慣於在需要時進行重構,但也會考慮如何編碼。

  1. 將所有共享聲明放在一個文件中,比如 index.d.ts。

  2. 將此文件放在一個文件夾中,例如 /src/typings

  3. 在 tsconfig.json 中,更新以下字段:

     {. "compilerOptions": {. "typeRoots": ["./node_modules/@types", "./src/typings"]. }. }.

現在這些類型將在所有文件中可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM