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

使用TypeScript开发Discord机器人昵称命令时出现TS语法错误如何解决?

错误原因

两个报错均是三元运算符语法不完整导致:

  • 第一次报错Expression expected.ts(1109):三元运算符的固定结构为条件 ? 条件成立时返回值 : 条件不成立时返回值,你的代码里:后面没有写条件不成立的返回值,直接断行写了下一行变量声明,不符合语法规则。
  • 替换为逗号后报错':' expected ts(1005):用逗号分隔const声明的多个变量时,前面的赋值表达式未闭合,同样不符合语法规则。

修复方案

1. 补全三元表达式

你当前的命令同时支持前缀消息和斜杠调用,message不存在时即为斜杠调用场景,需要补全该场景下取目标用户的逻辑,同时补全三元运算符的缺失部分。

2. 兼容斜杠调用的回复逻辑

斜杠调用时message为undefined,直接调用message.reply会触发运行时报错,需要统一兼容两种场景的回复方法。

修正后完整代码

import "discord.js";
import { ICommand } from "wokcommands";

export default{
    name: 'nickname',
    category: 'Moderation',
    aliases: ['nick'],
    description: '修改用户昵称',
    permissions: ['MANAGE_NICKNAMES'],
    slash: 'both',
    // 斜杠命令参数配置,调用时可以直接选用户和填写昵称
    options: [
        {
            name: '用户',
            type: 'USER',
            description: '要修改昵称的目标用户',
            required: true
        },
        {
            name: '新昵称',
            type: 'STRING',
            description: '要设置的新昵称',
            required: true
        }
    ],
    testonly: true,
    callback: async({ client, message, args, interaction }) => {
        // 兼容两种调用场景的回复方法
        const sendReply = (content: string) => {
            return message ? message.reply(content) : interaction.reply({ content })
        }
        // 兼容两种场景取目标成员
        const mentionedMember = message 
            ? message.mentions.members?.first() 
            : interaction.options.getMember('用户');
        // 兼容两种场景取新昵称
        const nickName = message 
            ? args.slice(1).join(" ") 
            : interaction.options.getString('新昵称');

        if (!mentionedMember) return sendReply('请指定要修改昵称的目标用户,用法:`>nickname @用户 新昵称`');
        if (!nickName) return sendReply('请输入要设置的新昵称');
        if (!mentionedMember.kickable) return sendReply('该用户角色等级高于我,我无法修改他的昵称');

        await mentionedMember.setNickname(nickName);
        await sendReply(`成功将 ${mentionedMember} 的昵称修改为 ${nickName}`);
    },
} as ICommand

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:24:00