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

TypeScript报Type 'bigint'无法赋值给BigInt的ts(2322)报错如何解决

bigint类型赋值报错截图

报错核心原因

这个TS2322报错和bigint字面量特性无关,本质是类型标注写错了:TypeScript中小写bigint和大写BigInt是两个完全不兼容的类型,和number与Number、string与String的区分规则完全一致:

  • 小写bigint是ECMAScript规定的原始类型,0n这类bigint字面量、BigInt()普通调用的返回值都属于这个类型,是日常开发做类型标注的正确选择
  • 大写BigInt是bigint对应的包装对象类型,只有new BigInt()构造出来的实例才属于这个类型,和其他包装对象类型一样,业务开发中几乎不会用它做变量标注

类型系统不允许原始类型值赋值给包装对象类型的变量,所以才会抛出类型不匹配的错误。

简洁规范的解决方法

不需要用BigInt(0)做转换绕路,直接把变量的类型标注从大写BigInt改成小写bigint即可:

// 错误写法,会触发TS2322报错
let count: BigInt = 0n;

// 正确写法,无报错,符合TS类型规范
let count: bigint = 0n;

通用规则提示:所有原始类型的标注都应该使用小写形式:string/number/boolean/bigint/symbol,不要使用大写的包装对象类型做标注,避免出现同类类型不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:33:21