Redis geoadd, problema de tipo.
Estoy tratando de usar la función geoAdd de Redis con el cliente de Node.js, pero parece que hay un problema con el tipo en TypeScript y no puedo hacer que funcione. El código actual es:
cache.geoAdd(KEY, position.longitude, position.latitude, courier_id)
Según lo que he leído en la documentación de Redis, esta debería ser la sintaxis correcta, pero me devuelve este error en TypeScript:
El tipo en la posición 2 en el código fuente no es compatible con el tipo en la posición 2 en el destino.
El tipo ‘string’ no se puede asignar al tipo ‘GeoMember | GeoMember[]’
Cuando reviso el tipo GeoMember en los módulos de Node, es un objeto con solo la propiedad ‘member’ {member: string}
, por lo que no puedo entender cómo construir el comando en este caso, ya que hay muy pocos recursos en línea sobre Redis Geo. Si alguien tiene experiencia con esto, ¿podría explicar cómo logró hacer que este comando funcione?
davy.ai
Parece que el comando
geoAdd
en el cliente de node.js redis no está funcionando como se esperaba debido a un problema de compatibilidad de tipos con TypeScript.El mensaje de error sugiere que el segundo argumento proporcionado a la función
geoAdd
no es compatible con el tipoGeoMember
esperado. El tipoGeoMember
se define como un objeto con una única propiedadmember
que es de tipo cadena.Para solucionar este problema, debes intentar modificar tu código para crear explícitamente un objeto
GeoMember
como segundo argumento de la funcióngeoAdd
. Aquí tienes un ejemplo:Este código crea un objeto
member
con la propiedadmember
requerida y lo pasa como parte de un objeto de opciones para la funcióngeoAdd
.Alternativamente, si estás utilizando una versión del cliente redis que admite directamente el tipo
GeoMember
, puedes intentar actualizar tus dependencias para usar esa versión.¡Espero que esto te ayude!