JSDoc + IDE 与 TypeScript

Mik*_* B. 14 javascript ide jsdoc typescript

通过正确维护的 JSDoc,几乎任何现代 IDE 都可以识别类型不匹配(赋值、函数签名/参数)以及非强类型语言引入的许多其他问题。除此之外,现代 JS 还具有可预测的变量范围、免提升行为、模块化、内置类支持等等。

在什么场景下,TypeScript 比 JS+JSDoc 更能满足开发者的需求?

Eck*_*sDy 8

我认为这样的比较有点奇怪。JSDoc 是面向文档的,而 typescript 则为 js 添加了可选的静态类型。这些工具确实有一些共同点,例如它们允许类型检查,但它们的目的不同。

但这是一个有趣的问题。我想鼓励就该主题进行讨论,因此我将根据我使用这些工具的经验来谈谈。

我对 jsdoc 的主要问题是以下部分至关重要:

正确维护 JSDoc

jsdoc 自动完成的有用性直接取决于 jsdoc 注释的工作量和质量。我发现在大型项目中很难执行。复杂的类型/接口也非常冗长,描述和维护起来也很痛苦。另一方面,ts 比 jsdoc 简洁得多。

此外,ts 中的类型和接口是一等公民,而不仅仅是为了文档而添加。它们是源代码中的实体,可以导出以供其他模块使用。类型不匹配是在编译过程中(以及之前)强制执行的。还有ts 附带的诸如泛型或装饰器之类的机制。

回到执行指南部分。使用 ESLint,您可以设置灵活的规则,以便您可以针对您的类型微调限制/样式/指南。您想要严格的静态类型吗?还是你想要宽大处理?
如果您愿意,您可以强制执行您的确切需求并将其连接到 ci/cd。在我看来,在从事大型项目时这是一个很大的好处。

工具也是一个重要因素,jsdoc 和 ts 都足够成熟,有围绕它们的生态系统。尽管目前jsdoc 还不是一个活跃的项目,但 ts 非常受欢迎,并且拥有一个庞大的社区,并且有很多活动。

因此,这一切都取决于您的需求,如果您对 jsdoc 能为您做的事情感到满意并且文档是您的主要关注点,那么 ts 不会为您做太多事情。

PS T 和 jsdoc 并不相互排斥。您可以同时拥有两者,尽管您可能想切换到TSDoc之类的东西