(This post is originally from Retsam on the TypeScript Discord server).
There's a particular pattern that is safe but hard for the Typescript compiler to handle, which I call the "correspondence problem":
const functionsWithArguments = [
{ func: (arg: string) => {}, arg: "foo" },
{ func: (arg: number) => {}, arg: 0 },
];