servicestack typescript客户端的d.ts中的日期支持
默认情况下,webstorm插件生成的servicestack类型脚本文件dtos.ts将所有日期属性设置为字符串servicestack typescript客户端的d.ts中的日期支持,typescript,
servicestack,Typescript,
servicestack,默认情况下,webstorm插件生成的servicestack类型脚本文件dtos.ts将所有日期属性设置为字符串 // @Required() to: string; 在servicestack.cs文件中,此属性是DateTime。 任何关于它为什么是这样以及我需要做什么的想法,例如,它将其转换为asp.net web api的日期。与其他语言不同,TypeScript中没有“反序列化步骤”,即TypeScript DTO只定义在中返回的类型,而JSON中没有日期类型,日期值以字符串形式返
// @Required()
to: string;
在servicestack.cs文件中,此属性是DateTime。
任何关于它为什么是这样以及我需要做什么的想法,例如,它将其转换为asp.net web api的日期。与其他语言不同,TypeScript中没有“反序列化步骤”,即TypeScript DTO只定义在中返回的类型,而JSON中没有
日期
类型,日期值以字符串形式返回,该字符串是使用JavaScript内置的JSON.parse()
或eval()
将其转换为JS对象时的类型
ServiceStack中返回的默认WCF日期。文本可以通过以下方式转换:
function todate (s) {
return new Date(parseFloat(/Date\(([^)]+)\)/.exec(s)[1]));
};
如果您使用的是npm软件包,则可以通过以下方式解决此问题:
import { todate } from "servicestack-client";
var date = todate(wcfDateString);
或者,如果使用ServiceStack中内置的:
var date = $.ss.todate(wcfDateString);
如果将ServiceStack.Text默认日期序列化更改为使用ISO8601日期格式:
JsConfig.DateHandler = DateHandler.ISO8601;
它可以通过以下方式进行本机解析:
new Date(dateString)
new Date(unixTimeMs)
同样,当配置为返回时:
JsConfig.DateHandler = DateHandler.UnixTimeMs;
它也可以通过以下方式进行本机转换:
new Date(dateString)
new Date(unixTimeMs)