跳到主要內容

invalid_modifier_on_constructor

修飾符“{0}”不能應用於建構函式的函式體。

說明

#

當建構函式的函式體字首使用了以下修飾符之一時,分析器會產生此診斷資訊:asyncasync*sync*。建構函式的函式體必須是同步的。

示例

#

以下程式碼會產生此診斷資訊,因為類 C 的建構函式函式體被標記為 async

dart
class C {
  C() async {}
}

常見修復方法

#

如果建構函式可以是同步的,請移除該修飾符

dart
class C {
  C();
}

如果建構函式不能是同步的,請改用靜態方法來建立例項

dart
class C {
  C();
  static Future<C> c() async {
    return C();
  }
}