如何将json解析传递给带有必填字段的Type变量

字母数字

使用属性Request定义ID为必需和Name可选的类型:

export type MyRequest = 
  {
    ID: string, 
    Name?: string
  };

我继续前进,通过它传递的JSON字符串化的测试它{ foo: "bar" }应该是无效的type MyRequest,因为所需的ID字段缺少:

let jsonData = JSON.stringify( { foo: "bar" } );
let invalidData: MyRequest = JSON.parse(jsonData) as MyRequest;

console.log(invalidData);

令人惊讶的是它没有错误。

这是一个错误还是在这里json.parse覆盖type了 Typescript强制执行?

古里克

当您将对象序列化为普通string.

请记住,TypeScript 可以帮助在运行之前在任何可静态分析的地方键入代码如果你告诉 TypeScript 的结果JSON.parse是类型,MyRequest它会在你使用的任何地方假设它,invalidData但它不会在运行时检查类型因为这不是 TypeScript 的目的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章