I\'m struggling in using moment.js library inside an Angular 2 Typescript app. Even after reading the answer to this question I can\'t get it to work.
This is what I did
As pointed out further down moment ships with its own typings now. And @angular/cli have changed aswell. Updated my answer to reflect this.
npm i --save moment
import * as moment from 'moment';
export class SomeClass implements OnInit {
date: moment.Moment;
ngOnInit() {
this.date = moment();
}
}
is all that is needed with @angular/cli.
Below is my old outdated answer.
With angular-cli: So you get Intellisense in VsCode
edit --> angular-cli-build.js
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...
'moment/min/**', // add this line
...
]
});
};
edit --> system-config.ts
const map: any = {
moment: 'vendor/moment/min/moment.min.js' // add this line
};
In your component:
import * as moment from 'moment';
...
// example of usage
dates: moment.Moment[] = [];
ngOnInit() {
let date = moment();
date.add(2, 'days');
this.dates.push(date);
}