avoid_type_to_string

avoid_type_to_string

Type에서 toString을 호출하는 것은 프로덕션 코드에서 안전하지 않아요. 타입이 정말로 같은지 확인해야 한다면 더 안전한 다른 방법을 쓰는 게 좋겠죠. 이 규칙을 설명해 드릴게요.

출처: 원문

본문

진단 메시지

Using 'toString' on a 'Type' is not safe in production code.

설명

분석기는 정적 타입이 Type인 값에 toString 메서드를 호출할 때 이 진단을 만들어요.

예시

다음 코드는 runtimeType이 반환한 TypetoString을 호출하기 때문에 이 진단이 발생해요.

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

class C {}

일반적인 해결 방법

타입이 정확히 같은지 확인해야 하는 상황이라면 명시적인 비교를 사용하세요.

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

class C {}

타입의 하위 타입 인스턴스가 true를 반환해도 괜찮다면 타입 검사를 사용하세요.

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

class C {}

더 알아보기