Skip to content

Diagnostic code 8030 being incorrectly generated using JSDoc @type on a function. #63754

Description

@Arashiryuu

🔎 Search Terms

Diagnostic 8030 is being generated incorrectly when using JSDoc @type on a method when the type is being referred to from an interface. This is using the new tsc LSP - version 7.0.2.

🕗 Version & Regression Information

  • This changed between versions 7.0.0-dev.260707.2 and 7.0.2.
  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about new native issues being transferred into the main typescript repo.

⏯ Playground Link

No response

💻 Code

// types.ts
interface Example {
  method (): number;
}
export {};

// code.js
const exampleFns = {
  /**
   * @type {Example['method']} // A JSDoc `@type` tag on a function must have a signature with the correct number of arguments.
   */
  method () {
    return Math.random();
  }
};

🙁 Actual behavior

in this example, the diagnostic and LSP info does not tell the user that typescript is internally suffixing | undefined to the type. As such wrapping the type in NonNullable<T> removes the error diagnostic, I do not believe this to be intended behaviour as previous iterations the golang native LSP tsgo (7.0.0-dev.260707.2) did not produce this diagnostic, nor did previous versions of typescript.

🙂 Expected behavior

The type should be properly referenced with no additional suffixing of types, as it used to.

Additional information about the issue

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScript

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions