Deno 1.40迎来装饰器破坏性变更

84 阅读1分钟

之前我在《TypeScript 5+装饰器变更的影响》里提到过,TypeScript 5+的装饰器不向下兼容,而原来默认启用了旧版装饰器的Deno面临一个抉择,应该怎么支持新版装饰器呢?

旧版装饰器和新版的区别在于experimentalDecorators这个配置项的开启与否,Deno在1.25版本起默认启用了。

从2023年5月起就有人提出issue,并有了一系列讨论image.png lucacasonato提出在1.37中直接使用新的,彻底禁用旧版本: image.png 把我吓了一跳,赶快回复说完全禁用不合适: image.png 直到12月有了个结论: image.png 将在1.40版本默认启用新版本装饰器,那么还想要使用旧版本的话,就与TypeScript的行为保持一致,需要在deno.json中显式设置experimentalDecoratorstrue。 直到1天前(2024年1月24日),这个issue被关闭: image.png 今天1.40版本发布,意味着这个变更真正来到了! image.png 之前用过我的oak_nestdeno_nest的读者需要注意修改配置。不然启动服务时就会报错了: image.png