內容

avoid_as

避免使用 as

此規則已於最新的 Dart 版本中移除。

詳細資訊

#

注意:此規則已在 Dart 3 中從 SDK 移除;它不再起作用。其建議是編譯器特定的,並且在空值安全的情況下大多已過時。

避免使用 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