no_dynamic_casts 규칙 — `dynamic`에서 암묵적 캐스트 피하기
no_dynamic_casts 규칙 — dynamic에서 암묵적 캐스트 피하기
dynamic 타입의 값을 다른 타입에 넣을 때, 그 변환이 암묵적으로 일어나도록 두면 어디서 어떻게 바뀌는지 알기 어려워져요. 이 린트 규칙은 그런 암묵적 캐스트를 명시적으로 바꾸도록 도와줘요.
출처: no_dynamic_casts
본문
dynamic에서 암묵적 캐스트는 피하세요.
dynamic 타입의 식을 dynamic도 아니고 Object?도 아닌 대상에 대입하는 건 암묵적 캐스트에 해당해요. 이런 캐스트는 개발자가 눈으로 확인할 수 있게 명시적으로 만들어 두는 편이 좋아요.
좋지 않은 예:
void f(dynamic x) {
int y = x;
}
좋은 예:
void f(dynamic x) {
int y = x as int;
}
활성화하기
no_dynamic_casts 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 no_dynamic_casts를 추가하면 돼요:
linter:
rules:
- no_dynamic_casts
린트 규칙을 YAML 맵 문법으로 설정하고 있다면, linter > rules 아래에 no_dynamic_casts: true를 추가하면 돼요:
linter:
rules:
no_dynamic_casts: true