Cuando se usa la sintaxis JSX con Generics, Typescript puede inferir propiedades normalmente, excepto el tipo de parámetros de función.
Código de ejemplo:
interface Dictionary { a: JSX.IntrinsicElements['a']; button: JSX.IntrinsicElements['button']; } type Props<T extends 'a' | 'button'> = Dictionary[T] & { as: T; }; function Test<T extends 'a' | 'button'>(args: Props<T>) { return null; } <Test as="a" href="#" onClick={(arg) => {}} />; // Parameter 'arg' implicitly has an 'any' type. Test({ as: 'a', href: '#', onClick: (arg) => {}, // No error });Si coloco el mouse sobre la propiedad onClick, puede indicar el tipo de onClick (React.MouseEventHandler<HTMLAnchorElement>), pero aún no puede inferir el tipo del parámetro.
Simplemente defínalo explícitamente como any con args: any y debería dejar de mostrarlo como error :)