Мне нужно создать переменную в JavaScript и присвоить ей значение в зависимости от условия. Это работает, но кажется немного многословным:
const color = (() => {
switch (type) {
case "primary":
return CONSTANTS.colors.primary;
case "secondary":
return CONSTANTS.colors.secondary;
case "tertiary":
return CONSTANTS.colors.tertiary;
case "positive":
return CONSTANTS.colors.positive;
case "negative":
return CONSTANTS.colors.negative;
case "disabled":
return CONSTANTS.colors.disabled;
default:
throw new Error("A backgroundColor condition was missed");
}
})();
То, что я пытаюсь сделать, называется «сопоставлением с образцом»? Я читал, что JavaScript не имеет этой функции, но я не совсем уверен, что это такое.
Есть ли более лаконичный способ написания кода выше? У меня может быть много операторов if
, но это кажется более запутанным и требует, чтобы переменная была let
, а не const
.
let color:
if (type === "primary") {
color = CONSTANTS.colors.primary;
} else if(type === "secondary") {
color = CONSTANTS.colors.secondary;
} else if(type === "tertiary") {
color = CONSTANTS.colors.tertiary;
} else if(type === "secondary") {
color = CONSTANTS.colors.secondary;
} else if(type === "positive") {
color = CONSTANTS.colors.positive;
} else if(type === "negative") {
color = CONSTANTS.colors.negative;
} else if(type === "disabled") {
color = CONSTANTS.colors.disabled;
}