es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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” 🙁

“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Este mensaje de error indica que hay un problema con la compatibilidad de tipos entre el tipo GridFSBucketWriteStream en el módulo mongodb y el tipo Writable del que hereda. El método end() en GridFSBucketWriteStream no se puede asignar al mismo método en Writable, 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 y multer-s3. El error se produce al ejecutar el script dev en tu archivo package.json, el cual utiliza nodemon 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 script dev 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.

Comments are closed.