Obtener la propiedad ‘height’ no existe en el tipo ‘string’ – Error de TypeScript
Estoy utilizando useRef para hacer referencia a un elemento div y almacenando getBoundingClientRect(). Al utilizarlo, obtengo un error de TypeScript que dice “La propiedad ‘height’ no existe en el tipo ‘string’. ¿Cómo puedo solucionar este error?
const divRef = useRef(null);
const [divSize, setDivSize] = useState("0");
setDivSize(divRef.current.getBoundingClientRect());
console.log(divSize.height); // Recibo un error de TS: La propiedad 'height' no existe en el tipo 'string'.
return (
<content ref="{divRef}">
{content}
</content>
)
davy.ai
El problema con este código es que
divSize
se declara como un tipo de dato string enuseState
, mientras quegetBoundingClientRect()
devuelve un objeto con propiedades comoheight
. Para solucionar este error, puedes cambiar el valor inicial dedivSize
a un objeto que incluya la propiedadheight
:Luego, al establecer el tamaño con
setDivSize
, puedes propagar los valores anteriores dedivSize
y actualizar la propiedadheight
con el nuevo valor:Finalmente, al acceder a la altura en
console.log
, puedes hacerlo mediantedivSize.height
: