Ich habe ein Problem in TypeScript, die ich nicht zu lösen scheinen.TypeScript Union in enums
Hier ist der Code
enum test{
PowerAttack = 2,
MagicAttack = 5,
Attack = PowerAttack && MagicAttack //invalid
}
document.body.innerHTML = (test.PowerAttack == test.Attack).toString(); //check1
document.body.innerHTML += (test.MagicAttack == test.Attack).toString();//check2
Wie kann ich die beiden Kontrollen funktioniert?
Ich versuche, test.Attack gleich zu test.PowerAttack UND test.MagicAttack, aber ich kann es nicht funktionieren. Ist das mit enums möglich? Bitte beachten Sie, dass ich viele andere Einträge in der Enumeration haben werde, so dass ich mich nicht wirklich mit bitweisen Operatoren anlegen will, da diese ziemlich schnell unleserlich und nicht erreichbar werden.
Wenn es nicht möglich ist, es mit Enums arbeiten zu lassen, was ist die beste Logik zu übernehmen? Klassen und Unterklassen? Typen? Sonst?
Es ist nicht möglich, es mit Gleichheit zu machen - wenn Angriff gleich PowerAttack und Angriff ist gleich MagicAttack, dann muss PowerAttack MagicAttack gleich sein. – artem
* Ich versuche, test.Attack gleich zu test.PowerAttack UND test.MagicAttack * Wie kann etwas gleich zwei verschiedene Dinge gleichzeitig sein? Mit "gleich" meinen Sie "Übereinstimmungen" in einem bitweisen Sinne? Meinst du 'oder' ('|') statt 'und' ('&') (vermutlich nicht logisch und ('&&')? –
Übrigens, was meinst du mit "ungültig"? Der Code, den du gibst Kompiliert gut für mich (obwohl es so ist, wie es aussieht, tut es wahrscheinlich nicht das, was du willst) –