function - TypeScript 中错误抛出函数的签名

标签 function typescript error-handling signature throws

是否存在一种“最佳实践”方式,可以让人们在 TypeScript 中使用该函数抛出错误的信息来标记该函数?

在 Java 中,人们会用“throws XYError”来注释函数的签名。这不适用于 TypeScript。

我知道运行代码不需要它,但就我而言,当函数签名已经告诉我此类信息时,它是更清晰的代码。

对于你们如何处理这种情况的任何合理提示,我们表示赞赏。

最佳答案

你的函数应该返回一个 Promise .这是表示异步操作最终完成或失败的自然方式。

这仅适用于异步函数。在我看来,最好的做法是根本不要从同步函数中抛出异常。

  • 访问文件、数据库、网络服务 - 这些应该是异步的

  • 参数超出范围 - 这在传统上不是 javascript 中的错误:pop() 从空数组返回 undefined, substring() 无效范围返回空字符串,这是 IMO 的好事 - 它会导致调用者的代码更清晰

  • 参数为 null - 使用 --strictNullChecks 进行编译,然后您可以依赖调用者永远不会传递 null

  • 堆栈溢出,内存不足 - 这些都不会被显式抛出,声明它们没有意义,因为任何函数都可能抛出它们(在 Java 中,这些是运行时异常,也不会被检查)

还有什么可以保证从同步函数中抛出异常吗?如果是,我认为在该语言中有明确的支持就太罕见了。

关于function - TypeScript 中错误抛出函数的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780539/

相关文章:

c - 不满足条件而执行的功能条件

javascript - 如何重用map函数中的对象?

angular - 为什么我不能在取消订阅后再次订阅同一个 EventEmitter

language-agnostic - 变量声明与错误检查 : Which Comes First?

ruby-on-rails - Rails 安装错误 : Failed to build gem native extension

actionscript-3 - AS3 : How to force parameters in callback functions

c++ - 我可以在不提供参数的情况下生成函数吗?

angular - 使用 typescript (javascript)触发 ng-bootstrap Accordion 组件?

.net - 什么情况下UIElement.UpdateLayout()可以调用Environment.FailFast?

r - 如何引用引号中的函数参数?