Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证加载到typescript类中的json对象是否正确?_Json_Typescript_Validation_Typechecking - Fatal编程技术网

如何验证加载到typescript类中的json对象是否正确?

如何验证加载到typescript类中的json对象是否正确?,json,typescript,validation,typechecking,Json,Typescript,Validation,Typechecking,我想确保加载到typescript类的JSON有效。 另外,我的类有一些逻辑,所以我希望它们保持类而不是成为接口。 我还需要类型检查和必需/非必需检查。 现在我只需将一个对象加载到构造函数中,并手动检查每个字段。 有没有办法使用typescript中的类型信息来执行此操作? 我试图查看生成的javascript文件,但它只是javascript,类型信息已经在那里了。 也许有一种方法可以在编译时使用它?当时,typescript知道类型。 我找到了一些这样做的库,但并没有一个库处理属性的类型以及

我想确保加载到typescript类的JSON有效。
另外,我的类有一些逻辑,所以我希望它们保持类而不是成为接口。
我还需要类型检查和必需/非必需检查。
现在我只需将一个对象加载到构造函数中,并手动检查每个字段。
有没有办法使用typescript中的类型信息来执行此操作?
我试图查看生成的javascript文件,但它只是javascript,类型信息已经在那里了。
也许有一种方法可以在编译时使用它?当时,typescript知道类型。 我找到了一些这样做的库,但并没有一个库处理属性的类型以及是否需要

类MyObject{
构造函数(json:any){
if(typeof json.id=='number'){
this.id=json.id;
}否则{
抛出新错误(“需要ID”);
}
if(json.name!=未定义){
if(typeof json.name=='string'){
this.name=json.name;
}否则{
抛出新错误('名称存在,但不是字符串!');
}
}
}
id:number;//必需
名称?:字符串;//可选
}
试一试{
设m1:MyObject={
身份证号码:123
};//可以工作,但m1不是类
设isMyObject=MyObject的m1实例?“”:“不是”;
log(`m1是MyObject`的${isMyObject}实例);
设m2=新的MyObject({
“id”:123
});
设m3=新的MyObject({
“id”:123,
“姓名”:“米奇”
});
设m4=新的MyObject({
//这将抛出一个错误
});
console.log('OK!');
}捕获(错误){
日志(“错误:+Error.message”);
}

< /代码>如果它不是字符串,它不是@安德烈亚斯,好的,而不是像JSON.PARSE(‘{ id’:123 }’)之类的问题,它与{ID“123 }是同一回事。有人能回答这个问题吗?如果你有线索的话,我可以探索一些东西。现在我不知道如何在没有手动检查的情况下解决这个问题。如果不是字符串,那就不是安德烈亚斯,好吧,不要考虑像JSON.PARSE(‘{ ID’:123 }’)之类的问题,这与{ID“123 }是一样的。有人能回答这个问题吗?如果你有线索的话,我可以探索一些东西。现在我不知道如何解决这个问题,没有我目前的手动检查。