class Book {
title: string;
datePublished: Date;
static unserialize(str) {
let ret = JSON.parse(str, (key, value) => {
switch (key) {
case 'datePublished': return new Date(value);
default:return value;
}
}) as Book;
return ret;
}
}
当取消序列化一个对象时,您可以使用JSON. parse中的恢复函数,就像在示例中一样。但是,您正在通过常量字符串中的名称访问对象的属性,从而失去了类型脚本的“控制”(例如,重构更改道具的名称不会反映在开关案例中)。
有没有更好的方法来使用typecript的可能性?
我不确定这是否是最好的解决方案,但我发现了一种至少可以标记错误的方法。重构不会更改文字名称,但会在更改后标记为错误。
诀窍是将键的类型设置为keyof Book
class Book {
title: string;
datePublished: Date;
static unserialize(str) {
let ret = JSON.parse(str, (key: keyof Book, value) => { // "keyof Book" does the trick
switch (key) {
case 'datePublished': return new Date(value);
case 'xitle' : return value; // [ts] Type '"xitle"' is not comparable to type '"title" | "datePublished"
default:return value;
}
}) as Book;
return ret;
}
}
我有一个如下的Json模式,当我在网上验证它时,比如http://jsonschemalint.com/draft4/#,它说它是有效的。我把“类型”改成了“对象”、“数组”、“字符串”,其余的结构保持不变。它仍然说是有效的模式。我的理解是当类型=对象时应该有“属性”,当类型=数组时应该有“项目”
我正在努力寻找 有什么不同?
我想知道在使用CsvRoutines包时,是否有方法检查和验证字段。基本上,如果第一列只有数字,我想处理一行,否则跳过/可能抛出异常。我猜2.7.0中发布的@Validate annotation可以实现这一点。但我想知道,是否有其他方法可以在早期版本(如2.5.9)中实现同样的效果?
在XML文件中,我们有一个表示PDF文件的base64编码字符串,该字符串包含一些表表示,即与本例类似。当解码该PDF文档的base64字符串时(如下图所示),我们最终得到的PDF文档大小为66KB,可以在任何PDF查看器中正确打开。 尝试使用TypeScript中的解码相同的base64编码字符串时(在VSCode扩展名内),即使用以下功能: 我们最终得到了一个大小为109KB的PDF文件,以及
问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:
我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?