discord.js v12中如何判断第二个参数(args[1])为空并返回
你使用if(!comment.length) return;判断不生效的核心原因是:当第二个参数本身不存在时,args[1]的值为undefined,直接访问undefined.length会抛出类型错误,代码执行中断,自然不会触发return逻辑。
修复方案
- 修正空参数判断逻辑
首先对参数做预处理,先判断是否存在再校验内容是否为空,可根据你的运行环境选择对应写法:
- 支持ES2020+语法的环境写法:
// 先对参数做去空格处理,再判断是否为空 const comment = args[1]?.trim() ?? '' if (!comment) return
- 兼容旧运行环境的写法:
const comment = args[1] ? args[1].trim() : '' if (comment.length === 0) return
- 新增embed字段兜底逻辑
为了避免极端场景下仍然出现空值显示问题,可以在给embed赋值评论字段时加一层兜底展示:
// 将你的embed新增评论字段的逻辑修改为类似写法 .addFields( { name: '用户评论', value: comment || '无评论内容', inline: false } )
内容的提问来源于stack exchange,提问作者FroZen Mitko
相关产品推荐
相关产品推荐

