null_closures
不要传递 null
作为闭包预期的参数。
此规则从 Dart 2.0 开始可用。
此规则有一个可用的 快速修复。
详情
#不要 传递 null
作为闭包预期的参数。
通常传递给方法的闭包只会在条件下被调用,因此测试和“快乐路径”生产调用不会揭示 null
会导致异常被抛出。
此规则仅捕获以下位置中闭包预期的地方传递的 null 字面量
构造函数
#- 来自
dart:async
Future
在第 0 个位置参数Future.microtask
在第 0 个位置参数Future.sync
在第 0 个位置参数Timer
在第 0 个位置参数Timer.periodic
在第 1 个位置参数
- 来自
dart:core
List.generate
在第 1 个位置参数
静态函数
#- 来自
dart:async
scheduleMicrotask
在第 0 个位置参数Future.doWhile
在第 0 个位置参数Future.forEach
在第 0 个位置参数Future.wait
在命名参数cleanup
Timer.run
在第 0 个位置参数
实例方法
#- 来自
dart:async
Future.then
在第 0 个位置参数Future.complete
在第 0 个位置参数
- 来自
dart:collection
Queue.removeWhere
在第 0 个位置参数- `Queue.retain
Iterable.firstWhere
在第 0 个位置参数,以及命名参数orElse
Iterable.forEach
在第 0 个位置参数Iterable.fold
在第 1 个位置参数Iterable.lastWhere
在第 0 个位置参数,以及命名参数orElse
Iterable.map
在第 0 个位置参数Iterable.reduce
在第 0 个位置参数Iterable.singleWhere
在第 0 个位置参数,以及命名参数orElse
Iterable.skipWhile
在第 0 个位置参数Iterable.takeWhile
在第 0 个位置参数Iterable.where
在第 0 个位置参数List.removeWhere
在第 0 个位置参数List.retainWhere
在第 0 个位置参数String.replaceAllMapped
在第 1 个位置参数String.replaceFirstMapped
在第 1 个位置参数String.splitMapJoin
在命名参数onMatch
和onNonMatch
错误
dart
[1, 3, 5].firstWhere((e) => e.isOdd, orElse: null);
正确
dart
[1, 3, 5].firstWhere((e) => e.isOdd, orElse: () => null);
用法
#要启用 null_closures
规则,请在 analysis_options.yaml
文件中添加 null_closures
到 linter > rules 下
analysis_options.yaml
yaml
linter:
rules:
- null_closures
除非另有说明,否则本网站上的文档反映的是 Dart 3.5.3。页面最后更新时间为 2024-07-03。 查看源代码 或 报告问题.