日期变量有效,但其上的函数不起作用

时间:2015-05-08 07:37:58

标签: typescript typescript1.4

我在ASP.NET MVC 5项目中使用TypeScript 1.4。

我有一个Date类型的字段,它可以部分工作:

var dob: Date = result.dateOfBirth;
alert(dob);
var dobAsString = dob.toDateString();

在上面的代码中,前两行有效,按预期显示值为“1968-11-16T00:00:00”。但是最后一行不起作用,实际上该行下面的其余代码甚至没有执行 - 它只是中断,没有错误消息。

无论我在最后一行应用哪个Date函数,此行为都会持续存在;我也可以使用dob.getFullYear()等等,每次都会失败。然而,变量属于正确的类型且具有正确的价值。编译器还可以找到Date函数,它可以毫无障碍地编译,但在运行时它会失败。有什么想法吗?

1 个答案:

答案 0 :(得分:20)

这个有两个方面。首先,您需要解析日期,因为您当前有一个字符串表示。第二个是您的array_map()变量没有类型信息。

result

当您收到JSON消息时,您可以应用一个描述服务器发送内容的接口,以便捕获TypeScript代码中的问题 - 例如您找到的问题。这将在将来再次停止发生问题(尽管不检查提供的JSON是否与界面匹配)...以下示例假定var result = { dateOfBirth: '1968-11-16T00:00:00' }; // Error, cannot convert string to date var a: Date = result.dateOfBirth; // Okay var b: Date = new Date(result.dateOfBirth); var result2: any = result; // Okay (not type information for result2) var c: Date = result2.dateOfBirth; 当前具有result类型。

any