Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: formats.dateTimeString.toISOString is not a function

I'm new to TypeScript and AngularJS, and I'm trying to convert a date from my API that is something like:

"8/22/2015"

...to an ISO Date. The date is properly deserialized into a TypeScript property of type Date. However, when I try the following command (in typescript, and this.dateDisplay is of type string)

this.dateDisplay = formats.dateTimeValue.toISOString();

I get the error:

TypeError: formats.dateTimeValue.toISOString is not a function at dataFormatsTests.js:42 at processQueue (angular.js:14567) at angular.js:14583 at Scope.$get.Scope.$eval (angular.js:15846) at Scope.$get.Scope.$digest (angular.js:15657) at Scope.$get.Scope.$apply (angular.js:15951) at done (angular.js:10364) at completeRequest (angular.js:10536) at XMLHttpRequest.requestLoaded (angular.js:10477)

I've also been to this site and it says my browser supports the toISOString function.

So, my questions is: Why doesn't my browser, or angular, or whatever, recognize the toISOString function?

like image 415
JB123 Avatar asked Aug 22 '15 13:08

JB123


1 Answers

Although the dateTimeValue was defined as a Date in TypeScript, it was being instantiated at runtime as a string because it was being pulled from the API. Therefore, the TypeScript would compile just fine, but when the javascript ran it was seeing .toISOString() being called against a string, not a Date.

like image 198
JB123 Avatar answered Nov 05 '22 09:11

JB123