Skip to main content

Enhancing Decorators with Type Annotations: Techniques and Best Practices

30 minutes


Decorators are powerful, magical syntax sugar, offering a convenient way to wrap and enhance functions. But sometimes, it’s not clear how to use a defined decorator.

What arguments should we pass to a given decorator? What functions does it target? Does it change the return type of the wrapped function? Have you ever faced these questions?

If proper type hints are defined for decorators, static type checkers like mypy and pyright IDEs will point out the errors in usage. Thus, guiding you on the right path by catching bugs earlier, reducing unnecessary debugging and unexpected runtime behaviour.

This talk will step you through type definitions utilizing typing.TypeVarTuple, typing.Protocol, typing.ParamSpec, typing.Concatenate, Type Parameter Syntax, and more, all of which are practical to implement and can make your project robust!

The speaker

Koudai Aono

Koudai Aono

I am a software developer based in Tokyo, with a strong focus on Python. I enjoy contributing to Open Source Software (OSS) with a goal to make the development environment friendlier.