Passing enum type as argument in Dart 2
This might work for you
typedef EnumValues<T> = List<T> Function();void main() { foo<E1>(() => E1.values); foo<E2>(() => E2.values);}enum E1 { a, b }enum E2 { c, d }void foo<T>(EnumValues<T> valuesFn) { var values = valuesFn(); for (var v in values) { print(v); }}
See comments - shorter version
void main() { foo<E1>(E1.values); foo<E2>(E2.values);}enum E1 { a, b }enum E2 { c, d }void foo<T>(List<T> values) { for (var v in values) { print(v); } print(values[0]);}