🎨 라이브: 위험도 → 아이콘/색상
최적#34c759
🛡️ isRiskLevel — 알 수 없는 입력 동작
  • "optimal"#34c759
  • "caution"!#ff9500
  • "risk"!!#ff6b6b
  • "unknown"#34c759
  • null#34c759
  • undefined#34c759
  • 42#34c759
  • ""#34c759

isRiskLevel 가드를 통과하지 못한 입력은 모두 optimal 기본값으로 폴백됩니다.

⛽ getFuelTypeLabel 동작 비교 (helper vs main)

선택: gasoline가솔린

입력helper (가드)main (폴백)
"gasoline"가솔린가솔린
"diesel"디젤디젤
"lpg"LPGLPG
"hybrid"하이브리드하이브리드
"electric"전기전기
"hydrogen"hydrogenhydrogen
""(빈 문자열)(빈 문자열)
null(빈 문자열)(타입 거부)
123(빈 문자열)(타입 거부)

helper 는 string 이 아니면 '' 폴백, main 은 매칭 안 된 string 을 그대로 반환합니다.

📊 calculateTcoBarPercentage vs getTcoBarPercentage
valuemaxhelpermain일치?
5010050.050.0
200100100.0100.0
01000.00.0
-101000.00.0
500100.00.0⚠️
50-1100.00.0⚠️
NaN1000.00.0
50NaN0.00.0

핵심 차이: helper 는 max ≤ 0 이면 100(꽉 찬 바)을, main 은 0(빈 바)을 반환합니다.