Skip to main content

prefer_iterable_wheretype

Use 'whereType' to select elements of a given type.

Description

#

The analyzer produces this diagnostic when the method Iterable.where is being used to filter elements based on their type.

Example

#

The following code produces this diagnostic because the method where is being used to access only the strings within the iterable:

dart
Iterable<Object> f(Iterable<Object> p) => p.where((e) => e is String);

Common fixes

#

Rewrite the code to use whereType:

dart
Iterable<String> f(Iterable<Object> p) => p.whereType<String>();

This might also allow you to tighten the types in your code or remove other type checks.