-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Open
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: check: Type InferenceRelated to type inference performed during signature resolution or `infer` type resolutionRelated to type inference performed during signature resolution or `infer` type resolutionHelp WantedYou can do thisYou can do this
Milestone
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[]} */ ([])); }Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: check: Type InferenceRelated to type inference performed during signature resolution or `infer` type resolutionRelated to type inference performed during signature resolution or `infer` type resolutionHelp WantedYou can do thisYou can do this