microsoft / microsoft/TypeScript
should allow type predicates when `isType(badInput as any)`
Offen
Dieses Issue hat noch niemand übernommen.
Awaiting More Feedback
Suggestion
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
Bug Report
🔎 Search Terms
🕗 Version & Regression Information
- This is a crash
- This changed between versions ______ and _______
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
- I was unable to test this on prior versions because _______
⏯ Playground Link
💻 Code
function isArray(input: any[] | number): input is any[]
{
return true
}
let badInput: string;
if (isArray(badInput as any))
{
badInput.join('')
}
// @ts-ignore
if (isArray(badInput))
{
badInput.join('')
}
🙁 Actual behavior

🙂 Expected behavior
badInput should know as array when use as any
if (isArray(badInput as any))
{
badInput.join('')
}
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 Unterschied zwischen isArray(badInput as any) und dem @ts-ignore-Fall. Lies das Typprüfungsverhalten rund um benutzerdefinierte Typprädikate und vergleiche den inferierten Typ innerhalb jedes Zweigs. Als erledigt gilt die Aufgabe, wenn der Aufruf mit Cast badInput zu einem Array verengt, ohne die Diagnose zu unterdrücken.
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