2016-08-07 3 views
17

Lorsque j'utilise cette ligne sur mon serveur Express, il fonctionne bien dactylographiée 1.xcôté gauche de l'expression d'affectation ne peut pas être une constante ou une propriété en lecture seule

mongoose.Promise = global.Promise; 

(L'utilisation de mongoose.Promise = global.Promise; est de the mongoose document)

Après la mise à jour à TypeScript 2.x, il montre cette erreur dans le terminal, et ne me laissera pas démarrer le serveur.

La partie gauche de l'expression d'affectation ne peut pas être une constante ou une propriété en lecture seule .

Comment puis-je résoudre ce problème? Merci

Répondre

31

En effet, dans es6 sont considérés comme de tous les modules les variables constantes.

https://github.com/Microsoft/TypeScript/issues/6751#issuecomment-177114001

En TypeScript 2.0 le bug (non signalé cette erreur) a été fixé.

Depuis mongoose utilise toujours la commonjs-var mongoose = require("mongoose") - pas la syntaxe d'importation es6 (qui est utilisé dans les typages), vous pouvez supprimer l'erreur en supposant le module est de type any.

DEPANNAGE:

(mongoose as any).Promise = global.Promise; 
+4

merci! juste ajouté un autre moyen similaire: '( mongoose) .Promise = global.Promise;' –