microsoft / microsoft/TypeScript

Instantiation expressions should filter overloads by type parameter constraints

Offen
#63,126 6 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@ahejlsberg arbeitet bereits daran.

Seit 13.2.2026.

Needs Investigation
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

### 🔎 Search Terms

call signature constructor signature type parameter

### 🕗 Version & Regression Information

Tested in `v4.7.4`, `v5.9.3` and `Nightly` (`v6.0.0-dev.20260204`)
Syntax error before `v4.7.4`

### ⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.9.3#code/LAKAJgpgxgNghgJwgAigewHYGcAuyBmAXMgN6jIXIA8AKgHwAUAHsTQJSsDc5lGEA7rWQQmOCBjBZkaAEYAraDkYtk7LqAC+3EKHTY8cZAF4CVEshnEAjMg11tAegeVkAPQD8oXZlwXjpq3tQJxcPYOcaAE8ABxQAcgwAVwBbGQgEOOQwNAgpDDQ8LDgcAEssfEjkHAALFD1cBDgSjDw42QUoHDigA

### 💻 Code

```ts
declare const f: {
(x: T): T;
new(x: T): T;
};

const a = f<{ b: 1 }>;
// ^? const a: { (x: { b: 1; }): { b: 1; }; new (x: { b: 1; }): { b: 1; }; }

const b = f<1>;
// ^? const b: { (x: 1): 1; new (x: T): T; }
// Type 'number' does not satisfy the constraint 'object'
```

### 🙁 Actual behavior

The type argument I pass to the object must met the requirements of both signatures

### 🙂 Expected behavior

The incompatible signature should just be filtered out, leaving only the compatible one
```ts
const b = f<1>;
// ^? const b: (x: number) => number
```

### Additional information about the issue

_No response_

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.