示例代码:
function durationToMillis(matrix, vals) {
let sum = vals.milliseconds ?? 0;
for (const unit of reverseUnits.slice(1)) {
if (vals[unit]) {
sum += vals[unit] * matrix[unit]["milliseconds"];
}
}
return sum;
} 产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 22H2 19045.5965
HBuilderX类型: 正式
HBuilderX版本号: 4.66
第三方开发者工具版本号: 1.06.2503300 win32-x64
基础库版本号: 3.8.8
项目创建方式: HBuilderX
示例代码:
function durationToMillis(matrix, vals) {
let sum = vals.milliseconds ?? 0;
for (const unit of reverseUnits.slice(1)) {
if (vals[unit]) {
sum += vals[unit] * matrix[unit]["milliseconds"];
}
}
return sum;
} vals.milliseconds ?? 0 这段代码应被编译为 vals.milliseconds === null || vals.milliseconds === undefined ? 0 : vals.milliseconds
实际上并未被转义
如题。
这会导致微信小程序代码上传报错:SyntaxError: Unexpected token ? ...
可以尝试用babel处理下
1***@qq.com (作者)
HBuilderX 有内置的 Babel,默认是有启用 ES6 转 ES5 的(这点在官网中也有说明)。现在的问题是,对于 HBuilderX 创建的工程项目,编译后并未对上述的 ?? 语法进行转义/降级。应该是内置 Babel 的问题?
2025-06-26 13:51
1***@qq.com (作者)
如果是项目的代码,手动改成
vals.milliseconds || 0是可以。但是如果这段代码是第三方库的呢 ?2025-06-26 11:32