Die folgenden Werke für mich für die Versionen:
- Moment: 2.17.1
- Moment-Bereich: 2.2.0
- @ Typen/Zeit-Bereich: 2.0.33
Das Problem ist, dass moment-range.js
nicht für den Bereich Funktionalität jede neue Einheit nicht exportieren, erstreckt es moment
Typ mit Bereich Funktionalitäten. Daher sollten diese Funktionalitäten von moment
importiert werden.
import {Moment, Range, range as RangeConstructor} from "moment";
Dieser Import Lasten die moment-range
Funktionalitäten von moment
. In diesem Beispiel importiere ich Range
Schnittstelle und range
Factory-Methode (um Bereiche zu erstellen/zu konstruieren). Das sollte reichen, aber falls Sie irgendeine Art von AMD oder eine ähnliche Abhängigkeit verwenden, sollte das moment-range
Modul geladen werden (erforderlich unter Verwendung von AMD-Bedingungen). Im Folgenden ist der Hack, die funktioniert für mich:
import DateRange = require("moment-range");
DateRange;
Der erste Import moment-range
Modul als Abhängigkeit des aktuellen Moduls umfasst daher wird es zunächst nach Bedarf geladen. Die zweite Zeile führt nichts aus, aber der TypeScript-Compiler entfernt nicht verwendete Abhängigkeiten. Daher muss die frühere importierte Abhängigkeit in irgendeiner Weise aufgerufen werden, um eine solche Compiler-Optimierung zu vermeiden.
auf Ihre Frage in Bezug, können Sie die Variable instanziiert jetzt:
private tableDatePeriod: Range;
und initialisieren:
tableDatePeriod = RangeConstructor('2016-01-09', '2016-01-10');
dies nützlich, aber mit einer früheren Version von Zeit und Zeit-Bereich – ivayloc
für mich es funktioniert für die Versionen "Moment": "^ 2.16.0", "Moment-Bereich": "^ 2.2.0" ' –