microsoft / microsoft/TypeScript

Incorrect diagnostic message in TS2814

Offen
#63,628 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Domain: Error Messages
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

### 🔎 Search Terms

2814, function body

### 🕗 Version & Regression Information

- regression at `v4.4.4`.

### ⏯ Playground Link

https://www.typescriptlang.org/play/?ts=4.4.4#code/MYGwhgzhAEBiD29oG9oChqegIzAJwEYAKAShWgF80q0AzAVwDtgAXAS3kbkVIG40A9AIB+APWgBRAEpSA8lIBccJqw5cA7mxYALHPAAmbAKYxgYLpxABPaAFsjeAOZHomndFCQIJ6DrAtofBcwW2xjRhYAOiA

### 💻 Code

```ts
// tests/cases/compiler/callOverloads1.ts

class Foo {
bar1() { }
}

function Foo();
//~^ error report: Function with bodies can only merge with classes that are ambient.
```

### 🙁 Actual behavior

The `function Foo` actually has no body (it's just a declaration), yet the error message says "Function with bodies...", which may be a bit confusing.

### 🙂 Expected behavior

Either show a hint like "Only functions can merge with ambient classes," or suppress the error report for functions without a body because `class Foo` will report `Class declaration cannot implement overload list for 'Foo'`.

### 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.

Rechercherichtung

Beginnen Sie mit tests/cases/compiler/callOverloads1.ts und reproduzieren Sie die TS2814-Diagnose mithilfe des bereitgestellten Playground-Beispiels. Verfolgen Sie die Diagnose für eine Funktionsdeklaration, die mit einer Klasse zusammengeführt wurde, und wählen und validieren Sie anschließend das in der Issue beschriebene Verhalten für die gemeldete Meldung oder die Unterdrückung. Aktualisieren Sie die Erwartungen des Compiler-Tests, sodass die inkorrekte Formulierung nicht länger akzeptiert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
68/100

Neue Issues direkt in Ihr Postfach

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