首页 > 解决方案 > Switch-case typescript case不适用于字符串

问题描述

我有以下开关简单案例:

let ca: string = "2";

switch (ca) {
case "2":
    console.log("2");

 case "1":
    console.log("1");

default:
    console.log("default");

}

我试图理解为什么这段代码的输出是:

2
1
default

我的预期输出是

2 default

为什么要打印

1

即使 ca 不等于“1”?

编辑:我知道我可以添加break声明 - 我只是想了解为什么会case "1"发生ca="2"

谢谢。

标签: javascripttypescript

解决方案


您需要break在每个 switch 块中添加一个语句,case否则一旦找到匹配项,它将继续执行。

let ca: string = "2";

switch (ca) {
  case "2":
    console.log("2");
    break;

  case "1":
    console.log("1");
    break;

  default:
    console.log("default");
}

推荐阅读