簡體   English   中英

JSDoc + IDE 與 TypeScript

[英]JSDoc + IDE vs. TypeScript

前提

通過正確維護 JSDoc,幾乎所有現代 IDE 都可以識別類型不匹配(賦值、函數簽名/參數)以及非強類型語言引入的許多其他問題。
除此之外,現代 JS 還具有可預測的變量范圍、無提升行為、模塊化、內置類支持等等。


在哪種場景下,TypeScript 比 JS+JSDoc 更能滿足開發者的需求?

注釋:我指的是強制支持遺留 JS/瀏覽器的情況,TS + Babel 可以將現代代碼庫轉換為一些對遺留​​友好的環境。

我覺得這個比較有點奇怪。 JSDoc 是面向文檔的,而 typescript 為 js 添加了可選的靜態類型。 這些工具確實有一些共同點,例如它們允許進行類型檢查,但它們的目的不同。

不過這是一個有趣的問題。 我想鼓勵就該主題進行討論,因此我將從我使用這些工具的經驗中談一談。

我對 jsdoc 的主要問題是以下部分至關重要:

正確維護 JSDoc

jsdoc 對自動完成的有用性直接取決於 jsdoc 注釋的努力和質量。 我發現在大項目中很難執行。 復雜的類型/接口也很難描述和維護,非常冗長。 另一方面,Ts 比 jsdoc 簡潔得多。

此外,ts 中的類型和接口是一等公民,而不僅僅是為了文檔而添加的。 它們是源代碼中的實體,可以導出供其他模塊使用。 在編譯過程中(和之前)強制執行類型不匹配。 還有一些機制,如泛型裝飾器,隨 ts 一起提供。

回到執行指南部分。 使用 ESLint,您可以設置靈活的規則,允許您為您的類型微調限制/樣式/指南。 你想要嚴格的靜態類型嗎? 或者你想要寬大處理?
如果需要,您可以強制執行您的確切需求並連接到 ci/cd。 在我看來,這在從事大項目時是一個很大的收獲。

工具也是一個重要因素,jsdoc 和 ts 都足夠成熟,可以圍繞它們建立生態系統。 盡管此時jsdoc 還不是一個活躍的項目,但 ts 非常受歡迎,並且圍繞它擁有一個擁有大量活動的龐大社區。

所以這一切都取決於您的需求,如果您對 jsdoc 可以為您做的事情感到滿意並且文檔是您的主要關注點,那么 ts 不會為您做太多。

PS Ts 和 jsdoc 並不相互排斥。 您可以同時擁有兩者,盡管您可能想切換到TSDoc 之類的東西

Typescript 和 Closure 等各種 Js 編譯器正式支持使用 JSDoc 進行類型檢查https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html

如果您想鍵入檢查 Js 源代碼,這是一個有效的選項。

暫無
暫無

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

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