error TS8024: JSDoc '@param' tag has name 'name', but there is no parameter with that name. is reported when a @param tag names a parameter the function does not have. JSDoc matches tags to parameters by name, so a renamed parameter loses its type silently in plain JSDoc tools; the checker reports it.
Two errors usually appear together: TS8024 on the tag, and TS7006 on the parameter, which now has no type. TS8024 is reported inside the comment, on the tag's line.
At a glance
| Code | TS8024 |
|---|---|
| Message | JSDoc '@param' tag has name '{0}', but there is no parameter with that name. |
| TypeScript's category | error |
| Listed under | JavaScript files only |
| Turned on by | No option: every checked file reports it |
| In .js files | Reported when the file is checked: checkJs in jsconfig.json, or // @ts-check at the top of the file |
The message is TypeScript's own text from its diagnostic messages file (Apache-2.0); {0} is filled in by tsc for each error.
What it looks like
/** @param {string} name */error TS8024: JSDoc '@param' tag has name 'name', but there is no parameter with that name.
export function greet(fullName) {error TS7006: Parameter 'fullName' implicitly has an 'any' type.
return `Hello, ${fullName}!`;
}jsconfig.json for this example
{
"compilerOptions": {
"checkJs": true,
"noEmit": true,
"strict": true,
"target": "es2022",
"module": "nodenext",
"types": []
},
"include": ["*.js"]
} What causes it
- The parameter was renamed and the tag was not (or the other way round).
- A tag documents a destructured parameter's property with a plain name instead of
options.name.
How to fix it
Give the tag the parameter's name
Change @param {string} name to @param {string} fullName. Editors that run TypeScript's language service rename both when you rename the parameter with the rename command instead of by hand.
/**
* @param {string} fullName
*/
export function greet(fullName) {
return `Hello, ${fullName}!`;
}jsconfig.json for this example
{
"compilerOptions": {
"checkJs": true,
"noEmit": true,
"strict": true,
"target": "es2022",
"module": "nodenext",
"types": []
},
"include": ["*.js"]
} Gotchas
- For a function that reads
argumentsinstead of named parameters, the checker adds a hint to a similar message (TS8029): the tag would matchargumentsif it had an array type. - The example writes the comment on one line so this site's marker can sit above the tag; tsc reports the tag's line in a multi-line comment just the same.
Sources
- JSDoc Reference: @param and @returns · TypeScript handbook
- @param on jsdoc.app · JSDoc
- diagnosticMessages.json (TypeScript 5.9.3) · TypeScript on GitHub
Last reviewed 20 October 2026.