avoid_as
避免使用 as
。
详情
#注意:此规则已在 Dart 3 中从 SDK 中移除;它不再起作用。它的建议是编译器特定的,并且在很大程度上因空安全而过时。
避免 (AVOID) 使用 as
。
如果您知道类型正确,请使用断言或赋值给类型更窄的变量(这避免了发布模式下的类型检查;as
在发布模式下不会被编译掉)。如果您不知道类型是否正确,请使用 is
进行检查(这避免了 as
引发的异常)。
错误示例 (BAD)
dart
(pm as Person).firstName = 'Seth';
正确示例 (GOOD)
dart
if (pm is Person)
pm.firstName = 'Seth';
但绝不是 (but certainly not)
错误示例 (BAD)
dart
try {
(pm as Person).firstName = 'Seth';
} on CastError { }
请注意,在 dynamic
的情况下会有一个例外,因为强制转换对性能没有影响。
可以 (OK)
dart
HasScrollDirection scrollable = renderObject as dynamic;
启用
#要启用 avoid_as
规则,请在您的 analysis_options.yaml
文件中的 linter > rules 下添加 avoid_as
analysis_options.yaml
yaml
linter:
rules:
- avoid_as
如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 avoid_as: true
analysis_options.yaml
yaml
linter:
rules:
avoid_as: true
除非另有说明,否则本网站上的文档反映了 Dart 3.7.1 版本。页面上次更新于 2025-03-07。 查看源代码 或 报告问题。