express angular mongoose angular2-universal typescript2.0

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;