I am trying to switch on an enum so that the correct code is run. I have made a typescript playground that showcases a small example of what I am trying to accomplish.
In the provided example I am trying to understand why Test1 will not print "B". My expectation is that when the logical OR is used it will try to check if either case is true. Not just the first one. Might this be a misunderstanding of some fundamentals? Test2 works because I am explicitly stating the cases, but Test1 would be a more compact version.
enum EventType {
A = "A",
B = "B",
C = "C",
}
function Test1(type: EventType) {
switch(type) {
case EventType.A || EventType.B:
console.log("Test1", type);
break;
case EventType.C:
console.log("Test1", type);
break;
}
}
function Test2(type: EventType) {
switch(type) {
case EventType.A:
case EventType.B:
console.log("Test2", type);
break;
case EventType.C:
console.log("Test2", type);
break;
}
}
const e = EventType.B;
Test1(e); // Expect "B" to print but does not
Test2(e); // Expect "B" to print and it does