Перезаписывание moment.now() в машинописном приложении

У меня есть задача синхронизировать MomentJS с серверным временем в приложении Angular2.

MomentJS имеет функцию для изменения источника времени, как указано здесь

Но компилятор машинописного текста не позволяет мне перезаписать функцию moment#now(), поскольку она экспортируется как функция из пространства имен в moment.d.ts, поэтому я получаю сообщение об ошибке.

Невозможно присвоить "сейчас", потому что это константа или свойство только для чтения.

Между тем у moment.d.ts на данный момент есть комментарий # сейчас:

//... перезаписать для получения прибыли

Поэтому я предполагаю, что я делаю что-то не так.

Я использую angular-cli rc4, MomentJS 2.18.1 и импортирую его как

импорт * как момент от "момента";

Я ценю вашу помощь.

0 ответов

"компилятор машинописного текста не позволяет мне перезаписывать moment#now() функция, поскольку она экспортирована как функция из пространства имен в moment.d.ts, поэтому я получаю сообщение об ошибке ".

Такие ограничения являются только предварительной компиляцией, что означает, что вы можете указать машинописному тексту, чтобы он по существу игнорировал и позволял вам переопределить, приведя его к any.

import * as moment from "moment";

// temporary cast as any to override.
(moment as any).now = () => serverDateTime

// continue with moment intellisense
Другие вопросы по тегам