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