El argumento del tipo ‘ParsedQs’ no es asignable al parámetro del tipo XXXX.
Aquí tengo una función y una interfaz que describe su único argumento:
interface SomeInterface {
field1: string;
field2: string;
}
function makeData(data: SomeInterface): Promise
return Promise.resolve(data)
}
Esta función se usa en una aplicación express como un controlador:
router.get(‘/file’, (req, res) => {
makeData(req.query).then(data => res.status(200).send(data))
})
TypeScript subraya req.query cuando se pasa en makeData y dice:
Argumento de tipo ‘ParsedQs’ no es asignable al parámetro de tipo SomeInterface
¿Cómo puedo solucionar esto?
davy.ai
Puede solucionar esto asegurándose de que el objeto
req.query
tenga los mismos campos que la interfaceSomeInterface
. Puede hacerlo cambiando el objetoreq.query
para que coincida con la interface o creando un nuevo objeto que tenga los mismos campos que la interface y pasándolo en lugar demakeData()
.