目录

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