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

开发Discord机器人踢人/封禁功能时遇TypeError错误求助

Discord机器人Kick/Ban命令失效:TypeError修复方案

问题根源

你的报错明确指出:index.js第570行将赋值运算符=误用于条件判断,且command是用const声明的常量,常量不允许被重新赋值,因此触发TypeError: Assignment to constant variable。

你贴的代码片段里写的是command == 'kick',但实际运行的代码中此处被错误写成了command = 'kick'——这行代码不是在判断command是否等于'kick',而是试图把'kick'赋值给常量command,直接违反了常量的只读规则。

修复步骤

  1. 打开index.js,定位到第570行,将else if(command = 'kick')中的单等号=替换为相等判断运算符:
    • 用==做松散相等判断,或用===做严格相等判断(推荐后者,避免类型隐式转换问题)
  2. 同步检查ban命令对应的条件判断行,确保同样使用判断运算符而非赋值运算符

修正后的代码示例

if(command === 'clear') { 
  client.commands.get('clear').execute(message, args); 
}else if(command === 'kick'){ 
  client.commands.get('kick').execute(message, args); 
}else if(command === 'ban'){
  client.commands.get('ban').execute(message, args); 
}

额外说明

  • const声明的变量一旦初始化就无法被重新赋值,这是ES6基础语法规则
  • 条件判断中务必区分三类运算符:
    • =:赋值操作,用于给变量赋值
    • ==:松散相等,会自动转换类型后比较
    • ===:严格相等,不转换类型,直接比较值和类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:40:37