内容

no_default_cases

没有默认情况。

此规则目前处于实验性阶段,从 Dart 2.9 开始可用。

详细信息

#

对枚举和类似枚举的类的 switch 语句不应使用 `default` 子句。

类似枚举的类定义为具体(非抽象)类,它们具有

  • 仅私有的非工厂构造函数
  • 两个或多个静态 const 字段,其类型为封闭类,并且
  • 定义库中没有该类的子类

在 switch 语句之外定义默认行为。

错误

dart
  switch (testEnum) {
    case TestEnum.A:
      return '123';
    case TestEnum.B:
      return 'abc';
    default:
      return null;
  }

正确

dart
  switch (testEnum) {
    case TestEnum.A:
      return '123';
    case TestEnum.B:
      return 'abc';
  }
  // Default here.
  return null;

用法

#

要启用 `no_default_cases` 规则,请在 analysis_options.yaml 文件中linter > rules 下添加 `no_default_cases`

analysis_options.yaml
yaml
linter:
  rules:
    - no_default_cases