type ErrorBrand = Readonly<{ [key in Err]: void; }>; const booPonies = ( ponies: keyof T extends "pony" ? ErrorBrand<"No ponies allowed!"> : T ) => {}; booPonies("no ponies"); // Good booPonies({ pony: "neigh" }); // ヽ(ಠ_ಠ)ノ