# Created on savesnippets.com · https://savesnippets.com/OH7oeFaRXkIBJ1 from typing import NewType UserId = NewType("UserId", int) PostId = NewType("PostId", int) def delete_user(uid: UserId) -> None: ... def delete_post(pid: PostId) -> None: ... u: UserId = UserId(42) p: PostId = PostId(99) delete_user(u) # ✓ # delete_user(p) # mypy error: PostId is not assignable to UserId # delete_user(42) # mypy error: int is not assignable to UserId # At runtime, UserId IS just int — no overhead. assert UserId(1) == 1