I am currently converting my project from ES5 to ES6, but I am running into an issue with MomentJS (version 2.18.1). The problem is that I have a few variables that are Moment objects, but I cannot call moment() on them.
An example:
import * as moment from "moment";
export class DateThingy {
constructor(private moment) { //What type does this have??
}
public getDate(): moment.Moment {
return this.moment();
}
}
1) If I set the type of private moment to private moment: moment WebStorm complains: "cannot find name 'moment'."
2) If I set the type to private moment: moment.Moment the object has changed and I cannot call this.moment() anymore (it is now an object and does not have a function call on it). Webstorm tells me: "cannot invoke an expression whose type lacks a call signiture. Type 'Moment' has no campatible call signatures."
3) I cannot use MomentStatic anymore, since it is not exported. If I type private moment: moment.MomentStatic WebStorm gives me: "namespace 'moment' does not have an exported member 'MomentStatic'"
So what typing should I use for this example?