为飞镖中的多个枚举应用相同的扩展名

Apply same extension for multiple enums in dart

是否可以将相同的 dart 扩展应用于多个枚举?这是我的枚举和扩展。

enum Currency {
  EUR, INR, USD, CNY, JPY, GBP
}

extension ParseToString on Currency {
  String toShortString() {
    return this.toString().split('.').last;
  }
}

能不能做成这样

enum InvoiceStatus {
  DRAFT, SENT, PAID, PARTIALLY_PAID
}

extension ParseToString on Currency, InvoiceStatus {
  String toShortString() {
    return this.toString().split('.').last;
  }
}

虽然无法为多个枚举添加扩展,但由于 dart 2.14 所有枚举都扩展了一个公共接口:Enum。这允许您向所有枚举添加扩展:

extension on Enum {
  String toShortString() {
    return this.toString().split('.').last;
  }
}

之后,您可以对任何枚举对象使用 .toShortString()