Nie można ustawić typu parametru na Enum? W ten sposób:Enum as Parametr w maszynie maszynowej
private getRandomElementOfEnum(e : enum):string{
var length:number = Object.keys(e).length;
return e[Math.floor((Math.random() * length)+1)];
}
Jeśli to zrobię, Intellij oznaczy ten kod jako nieznany. A proponuję zmienić nazwę zmiennej, czy to ma sens?
private getRandomElementOfEnum(e : any):string{
var length:number = Object.keys(e).length;
return e[Math.floor((Math.random() * length)+1)];
}
Kod ten działa bez zarzutu. ale nie jest tak eleganckie i zgodne z kodami.
Czy istnieje możliwość lub małe obejście w celu zdefiniowania wyliczenia jako parametru?
EDIT:
Po zbadaniu tych odpowiedzi, mogę to zrobić również z zestawem ah zdefiniowanego wyliczenia, czegoś podobnego do enum1 | enum2 | enum3?
Czy nie powinno to być 'e: MyEnumType'? Czy chcesz zaakceptować jakiekolwiek wyliczenie? Co by to było dobrego? Możesz także wykonać polecenie 'e: MyEnum | MyOtherEnum | MyThirdEnum'. – Thilo
Powiązane (ale prawdopodobnie nieaktualne): http: // stackoverflow.com/questions/21293063/jak-programowo-wyliczać-a-enum-type-in-maszynopis-0-9-5? rq = 1 – Thilo
każde wyliczenie powinno być możliwe, więc mogę uzyskać losowy element każdego wyliczenia przez wywołanie tej funkcji. – Synoon