跳到主要內容

avoid_as

已移除

避免使用 as

詳細資訊

#

注意:此規則已在 Dart 3 中從 SDK 移除;目前已不再運作。其建議是編譯器特定的,且在 Null 安全性推出後大多已過時。

避免使用 as

如果您確定類型正確,請使用斷言或指派給更窄類型的變數 (這樣可以避免在發布模式中進行類型檢查;as 在發布模式中不會被編譯移除)。如果您不確定類型是否正確,請使用 is 檢查 (這樣可以避免 as 引發的例外狀況)。

不良範例

dart
(pm as Person).firstName = 'Seth';

良好範例

dart
if (pm is Person)
  pm.firstName = 'Seth';

但絕非

不良範例

dart
try {
   (pm as Person).firstName = 'Seth';
} on CastError { }

請注意,dynamic 的情況是例外,因為轉型不會對效能造成影響。

可以

dart
HasScrollDirection scrollable = renderObject as dynamic;

啟用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_as

如果您改用 YAML map 語法來設定 linter 規則,請在 linter > rules 下新增 avoid_as: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_as: true