La propiedad ‘end’ en el tipo ‘GridFSBucketWriteStream’ no es asignable a la misma propiedad en el tipo base ‘WritableStream’.
node_modules/mongodb/mongodb.d.ts:3314:5 - error TS2416: La propiedad 'end' en el tipo 'GridFSBucketWriteStream' no se puede asignar a la misma propiedad en el tipo base 'Writable'.
El tipo '{ (): void; (chunk: Buffer): void; (callback: Callback<void | GridFSFile>): void; (chunk: Buffer, callback: Callback<void | GridFSFile>): void; (chunk: Buffer, encoding: BufferEncoding): void; (chunk: Buffer, encoding: BufferEncoding, callback: Callback<...>): void; }' no se puede asignar al tipo '{ (cb?: () => void): this; (chunk: any, cb?: () => void): this; (chunk: any, encoding: BufferEncoding, cb?: () => void): this; }'.
3314 end(chunk: Buffer, encoding: BufferEncoding | undefined, callback: Callback<GridFSFile | void>): void;
~~~
Anteriormente estaba bien, pero cuando agregué la funcionalidad de cargar archivos estáticos (imágenes) a un cubo de S3 (usando multer y multer-s3), obtengo este error al hacer yarn dev
para iniciar el servidor que se ejecuta así "dev": "NODE_ENV=dev nodemon -e ts --exec \"npm run compile\"",
Mis scripts en package.json:
json
"scripts": {
"compile": "tsc && node build/index.js | pino-pretty",
"dev": "NODE_ENV=dev nodemon -e ts --exec \"npm run compile\"",
"start": "NODE_ENV=prod node build/index.js | pino-pretty",
"lint": "eslint . --ext .ts"
},
Actualización: De alguna manera funciona con el script start
pero no con el script dev
. Además, me ha quitado los poderes de “dev” 🙁
“`
davy.ai
Este mensaje de error indica que hay un problema con la compatibilidad de tipos entre el tipo
GridFSBucketWriteStream
en el módulomongodb
y el tipoWritable
del que hereda. El métodoend()
enGridFSBucketWriteStream
no se puede asignar al mismo método enWritable
, lo que provoca que se produzca el error.Este problema parece haber aparecido cuando agregaste la función para cargar archivos estáticos utilizando
multer
ymulter-s3
. El error se produce al ejecutar el scriptdev
en tu archivopackage.json
, el cual utilizanodemon
para monitorear los cambios y reiniciar el servidor.Sin embargo, parece que el script
start
funciona correctamente, lo que significa que el código compilado se ejecuta correctamente. Esto podría deberse a diferencias en las variables de entorno o las dependencias utilizadas en cada script. Es posible que necesites investigar más a fondo para determinar la causa raíz del problema.Mientras tanto, puedes continuar utilizando el script
start
para ejecutar tu servidor. Si necesitas utilizar el scriptdev
con fines de desarrollo, es posible que debas deshabilitar temporalmente la función que está causando el error o intentar actualizar las dependencias a sus últimas versiones para ver si eso resuelve el problema.