Saltar al contenido
TS7031

    ↑↓ mover · ⏎ abrir · esc cerrar

    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

    1. 01
      function greet({ name }: { name: string }) {
        return name.toUpperCase()
      }

      Anota directamente el patrón de objeto para una forma pequeña y puntual.

    2. 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.

    Adónde ir después

    Errores