Type Hints and Static Typing
May 30, 2026 | 5 min read
Why Type Hints Help
Type annotations give the compiler more information to generate efficient machine code. Typed variables can avoid generic Python object boxing.
Basic Type Hints
def process(data: list[int]) -> int:
total: int = 0
for x in data:
total += x
return total
Supported Type Constructs
int,float,bool,strlist[T],dict[K, V],tuple[T, ...]Optional[T],Union[T, U]
Type Stability
The compiler generates specialised code for the first observed type. If a variable later changes type, it may deoptimise:
# Good: x stays int
x: int = 0
for i in range(1000):
x += i
# Slower: type changes
x = 0
for i in range(1000):
if i == 500:
x = 1.5 # deoptimisation point
Limitations
- Generic classes with custom type parameters may be treated as
object. - Recursive type aliases are not fully resolved.