Python
from typing import Literal

def route(name: Literal["main", "edit"], *args) -> None:
    match name:
        case "main":
            print("Main screen")
        case "edit":
            if not args:
                raise ValueError("No item id provided for editing.")
            print(f"Editing item id: {args[0]}")
        case _:
            raise ValueError(f"Invalid route name: {name}")

route("main")
route("edit", 12)
route("edit")  # Raises ValueError
Main screen
Editing item id: 12
line 9, in route
    raise ValueError("No item id provided for editing.")
ValueError: No item id provided for editing.