Skip to content

[require-returns-check] false postive with a typedef with a union including void #1390

Open
@JounQin

Description

@JounQin

Expected behavior

No error

Actual behavior

error

ESLint Config

export default [
  {
    settings: { jsdoc: { mode: 'typescript' } },
    rules: {
      'jsdoc/require-returns-check': 'error',
    },
  },
]

ESLint sample

/**
 * @param {string} name
 *
 * @typedef {{ loadTime: number; runTime: number; totalTime: number } | void} PerfResult
 * @returns {PerfResult} Perf result
 */
const perfCase = name => {
  const loadStartTime = performance.now()

  let syncFn

  try {
    syncFn = require(`./${name}.cjs`)
  } catch {
    return
  }

  const loadTime = performance.now() - loadStartTime

  let i = RUN_TIMES

  const runStartTime = performance.now()

  while (i-- > 0) {
    syncFn(__filename)
  }

  const runTime = performance.now() - runStartTime

  return {
    loadTime,
    runTime,
    totalTime: runTime + loadTime,
  }
}

Environment

  • Node version:
  • ESLint version
  • eslint-plugin-jsdoc version:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions