express - El lado izquierdo de la expresión de asignación no puede ser una constante o una propiedad de solo lectura
angular mongoose (1)
Cuando uso esta línea en mi servidor Express, funciona bien en TypeScript 1.x
mongoose.Promise = global.Promise;
(El uso de mongoose.Promise = global.Promise; es del documento de mongoose )
Después de actualizar a TypeScript 2.x, muestra este error en el terminal y no me permite iniciar el servidor.
El lado izquierdo de la expresión de asignación no puede ser una constante o una propiedad de solo lectura.
¿Como puedo resolver esto? Gracias
Esto se debe a que en es6 todas las variables del módulo se consideran constantes .
https://github.com/Microsoft/TypeScript/issues/6751#issuecomment-177114001
En TypeScript 2.0 se solucionó el error (de no informar este error).
Dado que mongoose sigue utilizando la commonjs - var mongoose = require("mongoose") , no la sintaxis de importación es6 (que se usa en las tipificaciones), puede suprimir el error suponiendo que el módulo sea de tipo any .
SOLUCIÓN DE TRABAJO:
(mongoose as any).Promise = global.Promise;