перечисления не могут быть добавлены за пределы (например, расширения / категории для классов) перечисления по уважительной причине. Например, допустим, у вас есть enum, в котором есть только два случая. Вы бы использовали его в случае коммутатора, как показано ниже:
var myEnumVar : MyEnumType = ....;
// ..... later on
switch(myEnumVar) {
case MyEnumCase1: //....
break;
case MyEnumCase2: // do some other stuff
break;
}
Теперь, представьте, кто-то просто добавил еще один тестовый пример вне определения enum. Ваш код не компилируется, и если вы не знаете, где именно были добавлены эти случаи и (в каком файле и в какой строке), вы никогда не сможете это выяснить, и часы вашего времени будут потрачены впустую, пока вы не выясните это.