跳到主要内容

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