Deno 1.21改进了REPL和错误处理

97 阅读2分钟

Deno 1.21改进了REPL和错误处理

最新发布的JavaScript和TypeScript运行时也开始逐步采用默认的非类型检查

Deno 1.21已经发布。这个最新升级的JavaScript/TypeScript运行时的特点是改进了REPL(读-评估-打印循环),并开始逐步放弃默认的类型检查。

Deno REPL是一个用于原型设计和尝试新事物的工具。在Deno 1.21中,一个-–eval-file 标志可以与deno repl 子命令一起使用。该标志允许传递文件的路径或URL列表,这些文件将在REPL启动前执行,对于建立自定义的、专门的REPL非常有用。另外,在 REPL 中对导入的模块禁用了类型检查,从而使导入速度加快。REPL 现在有一个全局clear() 函数,作为console.clear 的别名。Deno的开发者说,这与许多浏览器的REPL中的情况一致。

Deno 1.21开始了一条在deno run 中默认禁用类型检查的道路。类型检查将需要使用一个新的deno check 子命令来明确执行。这一变化将逐步进行,新版本中增加了一个deno check 子命令和一个DENO_FUTURE_CHECK=1 环境变量,可以将Deno切换到新的 "默认不进行类型检查 "模式,这将成为未来的默认模式。

请注意,这一变化并不意味着TypeScript支持将从Deno中移除。在解释这一变化背后的原因时,Deno的开发者说,近年来,用类型信息注释JavaScript代码的有用性已经显现。但类型检查可能很慢,并影响应用程序的启动性能。大多数开发者已经使用了一个IDE,在开发时浮现出类型检查的结果。此外,JavaScript正朝着获得本地类型注释的方向发展。

4月21日宣布的Deno 1.21可以由当前用户通过deno upgrade 命令下载。新用户的说明可以在发布说明中找到。

Deno 1.21的其他新功能和改进包括以下内容:

  • Deno的错误处理行为现在对异步事件循环任务(如setTimeout,setInterval, 或对浏览器的事件处理程序)中未捕获的异常进行了调整。对于上述API中未捕获的异常,将派发一个全局 "错误 "事件。
  • 不稳定的Deno.upgradeHttp API 可用于执行 HTTP 协议切换,现在支持在 Unix 连接之上运行的 HTTP 服务器的协议切换。
  • 新增了一个DENO_NO_PROMPT 环境变量。设置后,Deno 将禁用所有交互式提示,即使输出是一个交互式终端。这与在所有调用 denocode 二进制文件时指定–-no-prompt 的效果相同。
  • 内置的测试设施得到了改进。在一项改进中,deno test 将过滤掉来自Deno内部代码的堆栈帧,并显示错误来源的代码行。