首页 > 解决方案 > 在 switch case 中重新声明变量

问题描述

const answers = random.int(1, 5)
 
const embed = new MessageEmbed()
   .setTitle('Bank Rob')
   .setColor('GREEN')
    
   switch(answers) {
     case 1:
       let description = `test 1`;
       break;
     case 2:
       let description = `test 2`
       break;
     case 3:
       let description = `test 3`
       break;
     case 4:
       let description = `test 4`
       break;
     case 5:
       let description = `test 5`
       break;
   }

embed.setDescription(description)

我正在尝试分配description要在 switch case 语句之外使用的变量,但出现错误:

Cannot redeclare block-scoped variable "description"

标签: typescriptdiscord.js

解决方案


解决这个问题的最简单方法是完全避免switch:将描述放在一个数组中并对其进行索引。

const DESCRIPTIONS = ['test 1', 'test 2', 'test 3', 'test 4', 'test 5'];
const answers = random.int(1, 5)
 
const embed = new MessageEmbed()
   .setTitle('Bank Rob')
   .setColor('GREEN')

embed.setDescription(DESCRIPTIONS[answers - 1]); // array is indexed from 0

推荐阅读