メインコンテンツにスキップ

avoid_type_to_string

本番コードで「Type」に対して「toString」を使用するのは安全ではありません。

説明

#

静的型がTypeである値に対してtoStringメソッドが呼び出された場合、アナライザーはこの診断を生成します。

#

以下のコードは、runtimeTypeが返すTypeに対してtoStringメソッドが呼び出されているため、この診断を生成します。

dart
bool isC(Object o) => o.runtimeType.toString() == 'C';

class C {}

一般的な修正

#

型が厳密に一致することが不可欠な場合は、明示的な比較を使用してください。

dart
bool isC(Object o) => o.runtimeType == C;

class C {}

型のサブタイプのインスタンスがtrueを返すことが許容される場合は、型チェックを使用してください。

dart
bool isC(Object o) => o is C;

class C {}