跳到主要內容

invalid_modifier_on_setter

Setter 不能使用 'async'、'async*' 或 'sync*'。

描述

#

當 setter 的主體以以下修飾符之一為字首時,分析器會產生此診斷資訊:asyncasync*sync*。Setter 主體必須是同步的。

示例

#

以下程式碼會產生此診斷資訊,因為 setter x 的主體被標記為 async

dart
class C {
  set x(int i) async {}
}

常見修復方案

#

如果 setter 可以是同步的,則移除該修飾符

dart
class C {
  set x(int i) {}
}

如果 setter 不能是同步的,則改用方法來設定值

dart
class C {
  void x(int i) async {}
}