Change return type of `Object` call signature to `unknown` (currently `any`)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- compilers
Línea de trabajo
Comienza con el ejemplo enlazado de TypeScript Playground y la firma de llamada de ObjectConstructor descrita en el issue. Comprueba cómo afecta a la asignabilidad cambiar su tipo de retorno de any a unknown y, después, verifica que Object se rechaza para la callback mostrada que devuelve un string, mientras que los demás ejemplos conservan sus resultados esperados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🔎 Search Terms
ObjectConstructor, Object, assignable, function
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about 5.3.3
⏯ Playground Link
💻 Code
declare function foo(cb: () => string): void;
foo();// ✅ Expected result: error
foo(() => "");// ✅ Expected result: no error
foo(() => null);// ✅ Expected result: error
foo({})// ✅ Expected result: error
foo(String);// ✅ Expected result: no error
foo(Number);// ✅ Expected result: error
foo(Object);// ❌ Expected result: error
🙁 Actual behavior
Object (ObjectContructor) is assignable to any function, because it has a callable signature with return type of any.
This lets the developers to use Object where only a properly typed function would be allowed, which can lead to unexpected runtime errors.
I know this is a pretty edge case, but in my opinion it's worth looking into.
🙂 Expected behavior
Object is not assignable to functions with different return type
Additional information about the issue
No response
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
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.
Más de microsoft/TypeScript
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
microsoft/TypeScript#64322 · 2 comentarios · 1 reacción · 2 asignados ·
-
Possible Improvement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/TypeScript#64278 · 1 comentario · 1 reacción ·
-
Docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
microsoft/TypeScript#64118 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
microsoft/TypeScript#64094 ·
-
Docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/TypeScript#63959 · 5 comentarios ·
Todos los issues de microsoft/TypeScript
Issues similares
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
kubernetes-sigs/prow#953 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
caddyserver/caddy#8046 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
L1 recommended for recruits
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
area/entangle bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100