microsoft / microsoft/TypeScript
TS2367: This condition will always return 'false' since the types 'Constructor<T>' and 'typeof Child' have no overlap.
Offen
Dieses Issue hat noch niemand übernommen.
Domain: Error Messages
Experience Enhancement
Good First Issue
Help Wanted
Suggestion
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
TypeScript Version: 3.2.0-dev.20181011
Search Terms: TS2367
Code
abstract class Base<T> {
get Item(): T { return null }
}
class Child extends Base<Item> {
constructor(public data: any) { super() }
}
interface Item { }
declare type Constructor<T> = new (data: any) => Base<T>
function func<T>(constructor: Constructor<T>): void {
// TS2367: This condition will always return 'false' since the types 'Constructor<T>' and 'typeof Child' have no overlap.
if (constructor === Child) {
// do something
}
new constructor(null)
}
func(Child) // No errors
Expected behavior:
Compiles without errors.
Actual behavior:
test.ts:14:9 - error TS2367: This condition will always return 'false' since the types 'Constructor<T>' and 'typeof Child' have no overlap.
14 if (constructor === Child) {
~~~~~~~~~~~~~~~~~~~~~
Related Issues: #25642
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der bereitgestellten TypeScript-Reproduktion oder ihrem Playground-Link und vergleiche das Verhalten rund um TS2367 mit dem verwandten Issue #25642. Verfolge, warum der Vergleich von generischem Constructor mit typeof Child abgelehnt wird. Als erledigt gilt die Aufgabe, wenn das Beispiel ohne Fehler kompiliert und dabei das bestehende Verhalten beim Aufruf des Konstruktors beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 52/100