microsoft / microsoft/TypeScript
The return value of function type is not checked when function may return any
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
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:
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción vinculada en TypeScript Playground y compara las comprobaciones de f1, f2 y f3, centrándote en la validación del tipo de retorno cuando una rama devuelve any. Sigue la comprobación del retorno de la función por parte del compilador hasta que se diagnostique el retorno de tipo string; se considera terminado cuando f1 informa del error de tipo esperado sin cambiar los casos válidos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100