1
默认情况下webstorm插件生成的servicestack typescript文件dtos.ts将所有日期属性设置为字符串。在d.ts中为服务栈打字稿客户端提供日期支持
// @Required()
to: string;
在servicestack .cs文件中此属性为DateTime。 任何想法,为什么它是如此,什么我需要做到这一点,将其转换为日期,例如asp.net网页API
默认情况下webstorm插件生成的servicestack typescript文件dtos.ts将所有日期属性设置为字符串。在d.ts中为服务栈打字稿客户端提供日期支持
// @Required()
to: string;
在servicestack .cs文件中此属性为DateTime。 任何想法,为什么它是如此,什么我需要做到这一点,将其转换为日期,例如asp.net网页API
与其它语言不同,没有“反序列化工序”打字稿,即打字稿的DTO只是定义了在raw JSON中返回的类型,因为JSON中没有Date
类型,所以Date值作为字符串返回,这是Type使用JavaScript的内置JSON.parse()
或eval()
转换为JS对象时的值。
是在ServiceStack.Text返回默认WCF日期可以被转换:
import { todate } from "servicestack-client";
var date = todate(wcfDateString);
或者,如果:
function todate (s) {
return new Date(parseFloat(/Date\(([^)]+)\)/.exec(s)[1]));
};
如果你使用哪一种servicestack-client NPM包可以解决使用内置于ServiceStack中的ss-utils.js:
var date = $.ss.todate(wcfDateString);
如果你更改了日期的ServiceStack.Text缺省序列要么使用ISO8601日期格式:
JsConfig.DateHandler = DateHandler.ISO8601;
它可以与本地解析:
new Date(dateString)
同样配置何时返回:
JsConfig.DateHandler = DateHandler.UnixTimeMs;
new Date(unixTimeMs)
:
它也可以与本机转换