avoid_double_and_int_checks 린트 규칙: double·int 타입 확인 피하기

avoid_double_and_int_checks 린트 규칙: double·int 타입 확인 피하기

JavaScript로 컴파일하면 정수 값이 부동소수점으로 표현돼요. 그래서 isis!로 타입이 int인지 double인지 확인하면 예상 밖의 동작이 생길 수 있어요. 이 린트 규칙은 그런 double·int 타입 확인을 잡아내서 알려줘요.

출처: avoid_double_and_int_checks

본문

설명

타입이 double인지 int인지 확인하지 마세요.

JavaScript로 컴파일되면 정수 값이 부동소수점으로 표현돼요. 그래서 타입이 int거나 double인 경우에 isis!를 사용하면 예상 밖의 동작이 생길 수 있어요.

BAD:

f(num x) {
  if (x is double) {
    ...
  } else if (x is int) {
    ...
  }
}

GOOD:

f(dynamic x) {
  if (x is num) {
    ...
  } else {
    ...
  }
}

활성화 방법

avoid_double_and_int_checks 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.

linter:
  rules:
    - avoid_double_and_int_checks

대신 YAML 맵 문법을 사용해서 린트 규칙을 설정하고 있다면, linter > rules 아래에 avoid_double_and_int_checks: true를 추가하면 돼요.

linter:
  rules:
    avoid_double_and_int_checks: true

더 알아보기