【发布时间】:2022-01-23 01:55:25
【问题描述】:
我需要使用 typescript 验证 JSON。我想这样做:
jsonFile.json
{
"foo": "bar",
"fiz": "baz",
"potato": 4
}
JSONType.ts
type JSONType = typeof jsonFile;
jsonFile2.json
{
"foo": 5,
"fiz": false
};
如果我这样做:
const jsonFile2: JSONType = JSONFile2
我希望它因类型不匹配和缺少属性而引发错误。
我本质上是想确保两个 JSON 具有相同的结构,其中一个作为事实来源。我该怎么做?
【问题讨论】:
-
这很有趣,但不幸的是不是我想要的
-
如果是 JSON 就不行。类型仅在编译时存在,根据定义,JSON 在运行时从字符串解析为数据结构。如果您可以将其从 JSON 转换为实际的 Typescript 代码,那么您可以这样做,例如,下面的答案有一种方法可以告诉编译器将其视为 TS 代码,但是您想要获取 typeof 的任何内容(在 Typescript 意义上)必须在编译时就可以知道。
标签: javascript json typescript