Deno运行JSX示例报错:AbortSignal类型不存在reason属性
报错原因
本质是本地Deno版本和示例依赖的标准库版本不兼容:
- 报错里提到的
std@0.140.0是较新版本的Deno标准库,代码里用到了AbortSignal.reason这个Web标准API,对应的TypeScript类型定义只有Deno 1.20及以上版本才内置支持。本地Deno版本如果低于1.20,内置类型声明里的AbortSignal接口根本没有reason属性,做类型检查时就会抛TS2339错误。 - 跑纯JS的hello.js示例不报错,是因为Deno对
.js后缀的文件默认不做严格的全量类型检查,缺类型定义不会阻断运行;但.jsx、.tsx后缀的文件默认会走完整类型校验流程,只要存在类型不匹配就会直接终止执行抛错。
解决方法
- 优先选择升级本地Deno到最新稳定版,执行升级命令:
deno upgrade
升级完成后重新执行原启动命令即可正常运行。
- 如果暂时无法升级Deno版本,可以在启动命令中添加
--no-check参数跳过类型检查环节,直接运行代码,命令如下:
deno run --allow-net=:8000 --no-check https://deno.com/examples/hello.jsx
注意:该方案本质是绕开类型校验步骤,如果你的Deno版本过旧、底层运行时也没有实现AbortSignal.reason逻辑,依然会触发运行时错误,优先推荐通过升级版本解决问题。
内容的提问来源于stack exchange,提问作者Grant Pitt
相关产品推荐
相关产品推荐

