Microsoft/TypeScript
View on GitHub@description JSDoc tag interferes with callback parameter documentation
Open
#37,346 opened on Mar 11, 2020
BugDomain: JSDocHelp WantedcheckJs
Description
TypeScript Version: 3.8.3
Search Terms: jsdoc param
Expected behavior:
Below code creates no errors, type of x is recognized as (value: number) => boolean
Actual behavior:
Type of x is () => boolean, the invocation creates a type error.
Removing the @description tag makes the code work as expected.
My interpretation of https://jsdoc.app/tags-description.html is that you should be able to place @description anywhere in the comment without interfering with other tags:
By using the @description tag, you can place the description anywhere in the JSDoc comment.
Related Issues: Ran into a crash #37265 while trying to repro this with template parameters.
Code
// @ts-check
/**
* @callback IterablePredicate
* @description return true if given element of iterable matches an internal condition
* @param {number} value the current item being evaluated
* @returns {boolean} true if the entry satisfies given condition
**/
/**
* @type {IterablePredicate}
*/
let x;
x(3) // Expected 0 arguments, but got 1.
{
"compilerOptions": {
"noImplicitAny": true,
"strictFunctionTypes": true,
"strictPropertyInitialization": true,
"strictBindCallApply": true,
"noImplicitThis": true,
"noImplicitReturns": true,
"alwaysStrict": true,
"esModuleInterop": true,
"checkJs": true,
"allowJs": true,
"declaration": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"moduleResolution": 2,
"target": "ES2017",
"jsx": "React",
"module": "ESNext"
}
}
Playground Link: Provided