无效_字段_名
记录字段名不能是美元符号后跟一个整数,如果该整数是位置字段的索引。
记录字段名不能是私有的。
记录字段名不能与来自 'Object' 的成员同名。
描述
#当记录字面量或记录类型注解具有无效名称的字段时,分析器会产生此诊断。如果字段名是以下情况则无效:
- 私有的(以
_开头) - 与
Object上定义的某个成员同名 - 与位置字段同名(如果该字段是指定名称的位置字段,则为例外)
示例
#以下代码会产生此诊断,因为记录字面量有一个名为 toString 的字段,它是 Object 上定义的方法
dart
var r = (a: 1, toString: 4);以下代码会产生此诊断,因为记录类型注解有一个名为 hashCode 的字段,它是 Object 上定义的 getter
dart
void f(({int a, int hashCode}) r) {}以下代码会产生此诊断,因为记录字面量有一个名为 _a 的私有字段
dart
var r = (_a: 1, b: 2);以下代码会产生此诊断,因为记录类型注解有一个名为 _a 的私有字段
dart
void f(({int _a, int b}) r) {}以下代码会产生此诊断,因为记录字面量有一个名为 $1 的字段,该名称也是不同位置参数的名称
dart
var r = (2, $1: 1);以下代码会产生此诊断,因为记录类型注解有一个名为 $1 的字段,该名称也是不同位置参数的名称
dart
void f((int, String, {int $1}) r) {}常见修复
#重命名字段
dart
var r = (a: 1, d: 4);