Microsoft/TypeScript
Voir sur GitHubIncorrect type inference for generic class in JavaScript
Open
#61 552 ouverte le 5 avr. 2025
BugDomain: check: Type InferenceHelp Wanted
Métriques du dépôt
- Stars
- (48 455 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (9 PRs mergées en 30 j)
Description
Does this issue occur when all extensions are disabled?: Yes
- VS Code Version: 1.99.0
- OS Version: Windows 10 Home 22H2
Steps to Reproduce:
- Define a generic class as below:
/** @template T */ class C { /** @param {T} a */ constructor(a) { } f() { const v = new C(/** @type {T[]} */ ([])); } } - The type of the variable
vis incorrectly inferred to beC<T[][]>.
If the constructor call is outside of the class C<T> (as in the example below), the return type of the call is correctly inferred to be C<T[]>.
/** @template T */
class D {
f() { const v = new C(/** @type {T[]} */ ([])); }
}
/** @template T; @param {C<T>} c */
const f = c => { const v = new C(/** @type {T[]} */ ([])); }