avoid_ type_ to_ string
Using 'toString' on a 'Type' is not safe in production code.
Description
#
The analyzer produces this diagnostic when the method
toString
is
invoked on a value whose static type is
Type
.
Example
#
The following code produces this diagnostic because the method
toString
is invoked on the
Type
returned by
runtimeType
:
bool isC(Object o) => o.runtimeType.toString() == 'C';
class C {}
Common fixes
#If it's essential that the type is exactly the same, then use an explicit comparison:
bool isC(Object o) => o.runtimeType == C;
class C {}
If it's alright for instances of subtypes of the type to return
true
,
then use a type check:
bool isC(Object o) => o is C;
class C {}
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-1. View source or report an issue.