As I knew experimentally, the detecting of the constructor type via switch/case basically works, but sometimes could bring the surprises.
const TYPE: NumberConstructor | StringConstructor | ObjectConstructor = String;
switch(TYPE) {
case Number: {
// any applied code
}
case String: {
// any applied code
}
case Boolean: {
// any applied code
}
}
But how to explore which constructor is TYPE?
StringConstructor, NumberConstructor are interfaces and there is no type guards for them.
Please don't touch the TYPE during this topics.
As @Bergi said, normally the switch/case works fine.
But there could be come special cases like Universal mode in NuxtJS. According @-Ry-, NuxtJS could be bringing in a String constructor from a different execution environment somehow. However, the Stack Overflow rules requires this special case be considered on other question.