跳到主要内容

overridden_fields

稳定
推荐

不要重写字段。

详情

#

不要 重写字段。

重写字段几乎总是无意为之。无论如何,这样做都是一种不好的做法。

错误示例

dart
class Base {
  Object field = 'lorem';

  Object something = 'change';
}

class Bad1 extends Base {
  @override
  final field = 'ipsum'; // LINT
}

class Bad2 extends Base {
  @override
  Object something = 'done'; // LINT
}

正确示例

dart
class Base {
  Object field = 'lorem';

  Object something = 'change';
}

class Ok extends Base {
  Object newField; // OK

  final Object newFinal = 'ignore'; // OK
}

正确示例

dart
abstract class BaseLoggingHandler {
  Base transformer;
}

class LogPrintHandler implements BaseLoggingHandler {
  @override
  Derived transformer; // OK
}

启用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - overridden_fields

如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 overridden_fields: true

analysis_options.yaml
yaml
linter:
  rules:
    overridden_fields: true