无效_字段_名
记录字段名不能是美元符号后跟一个整数,如果该整数是位置字段的索引。
记录字段名不能是私有的。
记录字段名不能与来自 '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);