跳到主要內容

avoid_field_initializers_in_const_classes

穩定

避免在 const 類中使用欄位初始化器。

詳情

#

避免在 const 類中使用欄位初始化器。

與其使用 final x = const expr;,不如寫成 get x => const expr;,這樣可以避免分配無用的欄位。截至 2018 年 4 月,這對於 VM 是成立的,但對於編譯成 JS 的程式碼則不然。

不好

dart
class A {
  final a = const [];
  const A();
}

dart
class A {
  get a => const [];
  const A();
}

啟用

#

要啟用 avoid_field_initializers_in_const_classes 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 avoid_field_initializers_in_const_classes

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_field_initializers_in_const_classes

如果您使用 YAML 對映語法配置 linter 規則,請在 linter > rules 下新增 avoid_field_initializers_in_const_classes: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_field_initializers_in_const_classes: true