【发布时间】:2020-01-16 11:37:49
【问题描述】:
要描述函数抛出异常的可能性,我们可以使用 JSDock
/**
* @throws {Error}
*/
export const a = () => {
throw new Error("i am exist only to throw exceptions...")
}
好的,很可爱。 但是开发人员可能会错过该描述并且不将函数包装在 try...catch 中。
如何强制 typescript / IDE / ES-lint 告诉我我忘记在 try...catch 中包装函数?
我应该考虑制作一个 ES-lint 插件的想法吗? 或者有没有现成的解决方案? (除了所有可能参数的自动测试)
谢谢!
【问题讨论】:
-
您可能不想在
try..catch中包含某些内容,如果您希望下一个更高的调用者来代替它。 强制 你一直使用try..catch会适得其反。如果调用层次结构中的 something 能够捕获异常,那就太好了,但是 Javascript 的动态特性使得使用静态分析器几乎不可能确保发生这种情况。 -
@deceze,这是真的,但在这种情况下,您可以使用另一个 JSDoc 注释(或其他方式)转发该抛出。最接近的类比是 JAVA 中的 'throws ..'。这个概念只是一个想法,一切都可能会有所不同。我只是感兴趣是否有任何类似的方法。
-
我认为这是对您问题的一个很好的回答:stackoverflow.com/a/49435648/8575545
标签: javascript typescript try-catch eslint