microsoft / microsoft/TypeScript
The return value of function type is not checked when function may return any
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.4k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
TypeScript Version: 4.2.0-dev.20201124
Search Terms:
function, type check, any
Code
const f1: () => number = () => {
if (window) {
return {} as any;
}
return "a"; // Pass
};
// Expected behavior
const f2: () => number = () => {
return "a"; // Error: Type '() => string' is not assignable to type '() => number'
};
// Expected behavior
function f3(): number {
if (window) {
return {} as any;
}
return "a"; // Error: Type 'string' is not assignable to type 'number'.
};
Expected behavior:
f1 causes an error because it returns a string.
Actual behavior:
f1 does not cause an error.
Playground Link:
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con la riproduzione collegata in TypeScript Playground e confronta i controlli per f1, f2 e f3, concentrandoti sulla validazione del tipo restituito quando un ramo restituisce any. Segui il controllo del valore restituito dalla funzione da parte del compilatore fino a quando viene diagnosticato il valore restituito di tipo string; il lavoro è completato quando f1 segnala l'errore di tipo previsto senza modificare i casi validi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100