跳到主要内容

positional_field_in_object_pattern

对象模式只能使用命名字段。

描述

#

当对象模式包含一个未指定 getter 名称的字段时,分析器会生成此诊断。对象模式字段与对象 getter 返回的值进行匹配。如果未指定 getter 名称,模式字段将无法访问值以尝试匹配。

示例

#

以下代码会生成此诊断,因为对象模式 String(1) 未指定要访问 String 的哪个 getter 并与值 1 进行比较

dart
void f(Object o) {
  if (o case String(1)) {}
}

常见修复

#

添加 getter 名称以访问值,后跟冒号,再跟要匹配的模式

dart
void f(Object o) {
  if (o case String(length: 1)) {}
}