跳到主要內容

avoid_as

已移除

避免使用 as

詳情

#

注意:此規則已在 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

如果您使用的是 YAML map 語法來配置 linter 規則,請在 linter > rules 下新增 avoid_as: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_as: true