为什么我使用 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 可以让它更简洁。