Левая часть выражения присваивания не может быть константой или свойством только для чтения

когда я использую эту строку на своем экспресс-сервере, она хорошо работает в TypeScript 1.x

mongoose.Promise = global.Promise;

( использование mongoose.Promise = global.Promise; С Мангуст документ )

после обновления до TypeScript 2.x, он показывает эту ошибку в терминале и не позволяет мне запустить сервер.

левая часть выражения присваивания не может быть константой или свойство только для чтения.

Как я могу решить это? Спасибо

1 ответов


это потому, что в es6 все модуля!--10--> переменные рассматриваются как константы.

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

на TypeScript 2.0 Исправлена ошибка (не сообщать об этой ошибке).

С mongoose по-прежнему использует commonjs - var mongoose = require("mongoose") - не es6 синтаксис импорта (который используется в typings), вы можете подавить ошибку предполагая модуль типа any.

решение:

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