Documentation rots because it is written far away from the code it describes. Generating it from the signature keeps the two aligned: rename a parameter and the docs change with it, because there is nothing to hand-maintain except the sentence of intent.
Types are read from the signature when they are annotated and inferred from the parameter name when they are not — a name like itemCount is a number, isActive is a boolean. Check the inferred column before pasting into a real codebase.
Pick the format your repository already uses. JSDoc and docstrings are picked up by editors for inline hints; a README section or reference table is what a newcomer reads first.