Microsoft/TypeScript

TS2302 when using two generics with the same name in JSDoc, but not in TypeScript.

Open

#47.425 geöffnet am 13. Jan. 2022

Auf GitHub ansehen
 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (6.726 Forks)batch import
BugDomain: JSDocHelp Wanted

Repository-Metriken

Stars
 (48.455 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)

Beschreibung

Bug Report

🔎 Search Terms

ts2302 jsdoc

🕗 Version & Regression Information

  • This changed between versions 4.4.4 and 4.5.4

⏯ Playground Link

Playground link with relevant code

💻 Code

/**
 * @template T1
 * @typedef {T1} TakesT1
 */

/**
 * @template T1
 * @template T2
 */
class Foo {
    /**
     * @template T1
     * @template {TakesT1<T1>} T2
     *                    ^^--- Static members cannot reference
     *                          class type parameters.(2302)
     * @param {T1} t1
     * @param {T2} t2
     */
    static bar(t1, t2) {

    }
}

🙁 Actual behavior

"Static members cannot reference class type parameters." This is wrong because the equivalent typescript for this situation does not give an error: playground.

🙂 Expected behavior

No ts2302 error, TakesT1<T1> should use the T1 generic from the static bar() method, rather than from the Foo class.

Contributor Guide