microsoft / microsoft/TypeScript
Inferring "this" from arrow function is {}
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
TypeScript Version: Version 3.6.0-dev.20190601
Search Terms: This, Arrow, Functions, Infer, Inference, Empty, Object, Incorrect, Any
Code
type FunctionThisType<T extends (...args: any[]) => any> =
T extends (this: infer R, ...args: any[]) => any ? R : any
let fn = () => {}
let value: FunctionThisType<typeof fn> = "wrong"
Expected behavior:
error TS2322: Type '"wrong"' is not assignable to type 'typeof globalThis'.
Found 1 error.
Actual behavior:
No errors found.
Playground Link: Playground
Related Issues: None found.
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 dem verlinkten TypeScript Playground und reproduziere den Fall der Inferenz eines Conditional Types für den this-Typ einer Pfeilfunktion. Verfolge, wie FunctionThisType<typeof fn> inferiert wird, und überprüfe anschließend, dass das Beispiel den erwarteten Fehler TS2322 meldet, anstatt die Zuweisung des Strings zu akzeptieren.
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
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100