Không thể đặt kiểu tham số thành Enum? Như thế này:Giả sử tham số trong kiểu số
private getRandomElementOfEnum(e : enum):string{
var length:number = Object.keys(e).length;
return e[Math.floor((Math.random() * length)+1)];
}
Nếu tôi làm như vậy, Intellij đánh dấu mã này là không xác định. Và đề xuất đổi tên biến, điều đó có hợp lý không?
private getRandomElementOfEnum(e : any):string{
var length:number = Object.keys(e).length;
return e[Math.floor((Math.random() * length)+1)];
}
Mã này hoạt động tốt. nhưng không phải là thanh lịch và quy ước.
Có khả năng hoặc một giải pháp nhỏ để xác định enum là tham số không?
EDIT:
Sau khi nghiên cứu những câu trả lời, tôi có thể làm được điều này cũng với ah bộ enum định nghĩa, sth tương tự như enum1 | enum2 | enum3?
Không nên là 'e: MyEnumType'? Hay bạn muốn chấp nhận bất kỳ loại enum nào. Làm thế thì được ích gì? Bạn cũng có thể làm 'e: MyEnum | MyOtherEnum | MyThirdEnum'. – Thilo
Có liên quan (nhưng có thể lỗi thời): http: // stackoverflow.com/questions/21293063/how-to-programmatically-enumerate-an-enum-type-in-typescript-0-9-5? rq = 1 – Thilo
mọi enum nên có thể, vì vậy tôi có thể nhận được phần tử ngẫu nhiên ah của mỗi enum bằng cách gọi hàm này. – Synoon