You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何启用TypeScript类型校验?Deno运行类型错误代码未报TS2322

问题现象

跟随教程学习时,教程标注以下TypeScript示例代码运行应当抛出类型错误,但本地执行时可正常运行:

// example.ts

let age: number;

age = 15;
console.log(age);

age = "foo";
console.log(age);

执行deno run example.ts命令后的实际输出:

$ deno run example.ts
15
foo

预期行为是抛出TS2322类型错误,本地运行环境版本信息如下:

$ deno --version
deno 1.23.1 (release, x86_64-unknown-linux-gnu)
v8 10.4.132.8
typescript 4.7.2
问题原因

从Deno 1.23版本开始,deno run默认跳过执行前的TypeScript全量类型检查环节,仅完成语法转译后就直接运行代码,以此优化启动速度。这一默认行为变更,就是存在明确类型错误的TS代码可以正常执行、未抛出TS2322报错的根本原因。

开启TypeScript类型校验的方法
  • 单次运行触发校验:执行run命令时追加--check参数,完整命令为deno run --check example.ts。添加该参数后,Deno会在代码执行前完成完整类型检查,遇到示例中给标注为number类型的变量赋值字符串的问题,会直接抛出TS2322类型错误并终止执行。
  • 项目级默认开启校验:在项目根目录新建deno.json配置文件,添加严格类型检查配置,配置如下:
{
  "compilerOptions": {
    "strict": true
  }
}

配置生效后,当前项目下执行deno run时会默认开启类型检查,无需每次手动追加参数。

  • 仅做类型校验不执行代码:直接运行deno check example.ts命令,该命令仅对代码做全量类型扫描校验,不会执行实际代码逻辑。

内容的提问来源于stack exchange,提问作者cavalcantelucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:12:41