为什么我使用 rswitch 而不是冗长的 switch 块

发布: (2026年2月3日 GMT+8 06:31)
2 min read
原文: Dev.to

Source: Dev.to

安装

npm i rswitch

基本思路

你向 rswitch 提供:

  • 一个 key(你想要检查的值)
  • 一个 cases 对象(每种情况对应的返回值)
  • 一个可选的 options 对象

简单示例

import rswitch from "rswitch";

const role = "dev";

const result = rswitch(role, {
  designer: "Designer",
  "dev, web": "Freelancer", // 匹配多个键
  "": "Unknown",            // 默认情况
});

console.log(result); // Freelancer

✅ 小贴士:""(空字符串)表示默认情况。

示例 1:处理状态码(简洁清晰)

import rswitch from "rswitch";

function statusMessage(code) {
  return rswitch(code, {
    "200, 201, 204": "✅ Success",
    "400, 401, 403": "⛔ Client error",
    "500, 502, 503": "🔥 Server error",
    "": "🤷 Unknown status",
  });
}

console.log(statusMessage(503)); // 🔥 Server error

没有 break,没有贯穿,易于阅读。

示例 2:将函数作为动作运行

动作可以是值也可以是函数。

import rswitch from "rswitch";

const command = "build";

const result = rswitch(command, {
  build: () => "Building...",
  test: () => "Testing...",
  "": () => "Use: build or test",
});

console.log(result); // Building...

为什么 rswitch 比 switch 更好(适用于大量情况)

  • 代码更短
  • 易于阅读
  • 可以像 "dev, web" 这样分组多个情况
  • 默认情况写法简单:""
  • 在 JavaScript + TypeScript 中表现出色

如果你的 switch 代码变得冗长,rswitch 可以让它更简洁。

Back to Blog

相关文章

阅读更多 »