Type Hints Overview
On this page
What Type Hints Buy You
Type hints make intent visible and enable static checks. They improve maintenance and reduce production regressions, especially at module boundaries.
Basic Hints
from typing import Any
def parse_user_id(payload: dict[str, Any]) -> int:
user_id = payload.get("user_id")
if not isinstance(user_id, int):
raise ValueError("user_id must be int")
return user_id
Boundary Thinking
Type hints are most valuable at boundaries: parsing, I/O, and inter-module contracts.
Operational Checklist
- Annotate public functions and module boundaries first.
- Prefer precise types over
Anyin core logic. - Keep runtime validation for external inputs; hints do not validate at runtime.
Failure Modes
- Type theater: excessive complexity without real safety gains.
- False confidence: assuming hints replace runtime validation.