TS7031
El valor desestructurado tiene any implícito
Binding element 'name' implicitly has an 'any' type.Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.
Un patrón de desestructuración nombra un campo, pero el objeto que lo contiene no tiene un tipo conocido.
Reproducción
function greet({ name }) {
return name.toUpperCase()
}La compilación afirma que esto emite exactamente este código.
Por qué lo dice el compilador
La anotación pertenece al patrón completo del parámetro, no a su interior. Mientras el contenedor no tenga tipo, cada nombre extraído hereda esa falta de información y se vuelve `any` implícito.
Arreglos
- 01
function greet({ name }: { name: string }) { return name.toUpperCase() }Anota directamente el patrón de objeto para una forma pequeña y puntual.
- 02
type Person = { name: string } function greet({ name }: Person) { return name.toUpperCase() }
Da nombre a la forma cuando se comparte o forma parte de la API pública.
Conclusión
Tipa el objeto que se desestructura; sus enlaces se inferirán automáticamente.
