Givet en befintlig nyckel, hur får man nästa eller föregående nyckel i en ordnad TypeScript-strängenum?
Att ha en nyckel STEPS.GENDER och följande strängenum
export enum STEPS {
NAME = "name",
GENDER = "gender",
BIRTHDAY = "birthday",
SUCCESS = "success"
}
Hur kan jag dynamiskt få nästa eller föregående nyckel i enum, i detta fall STEPS.BIRTHDAY och STEPS.NAME?
PS: Eller i allmänhet någon annan nyckel i förhållande till den aktuella nyckeln där jag kan definiera förhållandet. Om ingen befintlig nyckel hittas kan undefined returneras.
Svar #1
Ta en titt på hur strängenum översätts till JS:
var STEPS;
(function (STEPS) {
STEPS["NAME"] = "name";
STEPS["GENDER"] = "gender";
STEPS["BIRTHDAY"] = "birthday";
STEPS["SUCCESS"] = "success";
})(STEPS || (STEPS = {}));
Med vetskapen att:
enum STEPS {
NAME = "name",
GENDER = "gender",
BIRTHDAY = "birthday",
SUCCESS = "success"
}
const vals = Object.values(STEPS);
const indexOfSearchedItem = vals.indexOf(STEPS.GENDER);
const next: STEPS = vals[indexOfSearchedItem + 1]
console.log(next);
