【问题标题】:Can I turn a type into JSON?我可以将类型转换为 JSON 吗?
【发布时间】:2022-08-17 16:10:53
【问题描述】:

我想在编译期间将类型(及其子类型)转换为 JSON,因此我可以在不知道实际类型的情况下轻松验证属性是否存在。类型属性的值将是实际类型,例如字符串、数字、嵌套对象。

例如:

type B {
  propX: string
}

type A {
   prop1: string
   prop2: B
}

const jsonOfTypeA = ....somehow

class MyManagerClassForTypeA {
    doSumat(prop: string, action: (val: any) => void) {
       validateProperty(jsonOfTypeA, prop); // very easy in json with libraries
    }
}

预期的 jsonOfTypeA:

{
   \"prop1\": \"string\", 
   \"prop2\": { \"propX\": \"string\" } 
}

我要求一种自动化的方式,而不是在每次模型更改时手动编写 JSON。

    标签: typescript


    【解决方案1】:

    不幸的是,在构建时仅使用 Typescript 元编程无法做到这一点。您可以尝试使用现有的包,例如 typescript-json-schemats-json-schema-generator。否则,如果这些解决方案不符合您的需求或过于复杂,您可以使用Compiler API 来读取您的类型并生成 JSON 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 2016-05-07
      • 2011-02-10
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多