Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
191
rated 0 times [  192] [ 1]  / answers: 1 / hits: 53066  / 9 Years ago, mon, february 8, 2016, 12:00:00

I'm using JSPM, AngularJS, TypeScript, SystemJS and ES6 and my project is running pretty well... unless I try to use momentJS.



This is the error I get:




TypeError: moment is not a function




This is part of the code:



import * as moment from 'moment';


More:



var momentInstance = moment(value);


If I debug it, moment is an object not a function:



enter



This is what my moment.js JSPM package looks like:



module.exports = require(npm:[email protected]/moment.js);


I've read a lot and couldn't find a way to solve this... any ideas?



Some things I've read/tried:



How to use momentjs in TypeScript with SystemJS?



https://github.com/angular-ui/ui-calendar/issues/154



https://github.com/jkuri/ng2-datepicker/issues/5



Typescript module systems on momentJS behaving strangely



https://github.com/dbushell/Pikaday/issues/153



Thanks!


More From » angularjs

 Answers
9

Simply remove the grouping (* as) from your import statement:



import moment from 'moment';


Without digging too deeply in to the source code, it looks like moment usually exports a function, that has all kinds of methods and other properties attached to it.



By using * as, you're effectively grabbing all those properties and attaching them to a new object, destroying the original function. Instead, you just want the chief export (export default in ES6, module.exports object in Node.js).



Alternatively, you could do



import moment, * as moments from 'moment';


to get the moment function as moment, and all the other properties on an object called moments. This makes a little less sense when converting ES5 exports like this to ES6 style, because moment will retain the same properties.


[#63395] Saturday, February 6, 2016, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
alora

Total Points: 284
Total Questions: 99
Total Answers: 92

Location: Singapore
Member since Sat, Jul 25, 2020
4 Years ago
;