JavaScript 错误:运算符“<<”无法应用于类型“bigint”和“number”

Cal*_*ugh -1 javascript database bit-shift typescript

我正在尝试像这样对 bigint 进行位移动:

let foo = BigInt(420) << 32;
Run Code Online (Sandbox Code Playgroud)

但我收到 JavaScript 错误:运算符 '<<' 无法应用于类型 'bigint' 和 'number'。

如何在 JavaScript 中对 bigint 进行位移位?

小智 6

正如 James 作为评论所建议的,并且根据左移运算符 (<<)的 MDN 文档,操作的两侧必须相同,要么都是数字,要么都是 BigInt。因此,您应该在数字文字(例如 16n 和 32n)的末尾添加n以将它们声明为 BigInts 或显式地创建它们。

不知道这是否真的是您的问题,因为抛出的异常与我在控制台上尝试时不同,但我希望它有所帮助。

另外,如果它有帮助,请不要将其标记为已回答,因为我想窃取詹姆斯的功劳哈哈哈。我只是想稍微扩展一下答案。