问题: 写代码的时候突然报了 Unexpected lexical declaration in case block. 的错误
描述: 今天在写代码的时候突然报错了Unexpected lexical declaration in case block.,开始有点闷,后来发现把类型定义写在了switch里面,错误代码如下:
switch (item.value) {
// 整理
case RIGHT_MENU[0].value:
const data = 1; // 报错
break;
// 刷新
case RIGHT_MENU[1].value:
// 实现代码
break;
default:
console.warn("未知菜单");
break;
}
解决:
这是一个eslint的报错提示,意思是在case中意外出现了类型声明,eslint不允许在case中声明变量,应该讲声明放在外面,case只进行赋值,比如:
let data=null;
switch (item.value) {
// 整理
case RIGHT_MENU[0].value:
data = 1; // 正确
break;
// 刷新
case RIGHT_MENU[1].value:
// 实现代码
break;
default:
console.warn("未知菜单");
break;
}