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

ScriptLab中使用Nullish Coalescing运算符报错是否为已知Bug?

问题

我需要让函数的可选参数能接收0或false这类有效值,所以用??运算符代替||来设置默认值,避免有效值被默认值覆盖。示例代码如下:

function myfunction(param1: number, param2?: number): number 
{
  param2 = param2 ?? 1

  console.log(param2)

  return param2
}

这段代码实际运行完全正常,但ScriptLab编辑器却提示语法错误,请问这是ScriptLab的已知Bug吗?

解答

这是ScriptLab的已知兼容性问题。ScriptLab的语法校验模块对ES2020及之后的新特性支持不完善,??空值合并运算符是ES2020引入的特性,编辑器的校验逻辑还没跟上,所以会误报语法错误。不过代码实际运行不受影响,因为宿主环境(比如浏览器)已经支持该语法。

如果要规避编辑器的报错提示,可以改用ES2020之前的兼容写法,通过条件判断实现相同逻辑:

function myfunction(param1: number, param2?: number): number 
{
  param2 = (param2 === undefined || param2 === null) ? 1 : param2;

  console.log(param2)

  return param2
}

这样既能保留原有的参数处理逻辑,又能让ScriptLab的语法校验通过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:55:56