microsoft / microsoft/TypeScript
Any type is inferred when function input parameter is set to some value
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
TypeScript Version: 3.8.2
Search Terms: any type is inferred
Code
interface ContinuationQueryResult<T> {
documents: T[];
continuation?: string;
}
function abc(continuation?: string): Promise<ContinuationQueryResult<string>> {
return <any>undefined;
}
async function test() {
// When not explicitly set to undefined type is inferred correctly.
let continuation: string | undefined = undefined;
do {
const summaries = await abc(continuation);
continuation = summaries.continuation;
} while (continuation)
}
Expected behavior:
Type of summaries variable should be ContinuationQueryResult<string>.
Actual behavior:
summaries variable is inferred as any.
Related Issues:
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 verknüpften TypeScript Playground-Reproduktion und der Testfunktion und vergleiche die Inferenz, wenn continuation mit undefined statt mit einem anderen Wert initialisiert wird. Verfolge den Type-Checking-Pfad für das optionale Argument und füge einen Regressionstest hinzu; erledigt ist die Aufgabe, wenn summaries als ContinuationQueryResult statt als any inferiert wird.
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
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100