看起來在TypeScript中有兩種使用接口的方式:我可以在普通的.ts文件中定義它們並導入它們,或者我可以在.d.ts文件中定義它們,讓編譯器自動從node_modules/@中找到它們或者通過在tsconfig.json中爲typeRoots添加相關路徑,並且它們變得「魔術般」可用。使用TypeScript聲明(* .d.ts)和接口的正確方法是什麼?
目前我有兩個項目:一個客戶端(React)和一個服務器(Express),都是用TypeScript編寫的。我在兩個項目中都使用了某些接口,爲了避免項目之間的依賴關係,我將通用接口提取到一個單獨的項目中,並聲明爲聲明文件。然後我說這個項目作爲一個開發依賴這種方式:
"@types/my-definitions": "git+ssh://[email protected]/myaccount/my-definitions.git"
這樣打字稿編譯器會自動從node_modules/@類型找到接口,我沒有導入接口。
我的問題是,這是一個很好的做法,或者我應該有普通的.ts文件中的接口,將項目作爲普通依賴項導入,並顯式導入我正在使用的接口?每種方法的優缺點是什麼?