【发布时间】:2022-01-06 01:06:07
【问题描述】:
我是使用 Lint 的新手,我的 UserModel 变量上有一条蓝色下划线,消息为 Don't override fields 和 Annotate overridden members。我很难理解示例文档中的“好”和“坏”规则。添加@override后我仍然收到相同的消息。
class UserModel extends UserEntity {
final int id;
final String? uid;
const UserModel(
{required this.id,
this.uid})
: super(
id: id,
uid: uid,
);
}
//
class UserEntity extends Equatable {
const UserEntity({
required this.id,
this.uid,
this.provider,
});
final int id;
final String? uid;
static const empty = UserEntity(id: 0, uid: '');
@override
List<Object> get props => [id];
}
【问题讨论】:
-
overridden_fieldslint 警告您正在覆盖字段。添加@override属性将无济于事。如果您不希望收到警告,请不要覆盖基字段,尽可能在派生类中使用 getter 和/或 setter,或者使用// ignore: overridden_fields来抑制 lint。另见github.com/dart-lang/linter/issues/2428。