TypeScript解析json文件中的确切类型
我有一个json配置文件TypeScript解析json文件中的确切类型,json,typescript,types,Json,Typescript,Types,我有一个json配置文件 [{ name: "apple", weight: 1.0 }, { name: "banana", weight: 2.0 }] 我创建了描述此配置的类型 type Config={name:“apple”|“banana”,weight:number}[]; 现在,我创建了一个返回该配置的函数 从“/Configuration.json”导入配置; 函数getConfig():Config{ 返回配置; } 我这样说是错
[{ name: "apple", weight: 1.0 }, { name: "banana", weight: 2.0 }]
我创建了描述此配置的类型
type Config={name:“apple”|“banana”,weight:number}[];
现在,我创建了一个返回该配置的函数
从“/Configuration.json”导入配置;
函数getConfig():Config{
返回配置;
}
我这样说是错误的
类型“string”不可分配给类型“apple”|“banana”
我知道问题出在name
字段上,该字段的类型被解析为string
,而不是“apple”|“banana”
是否可以使用精确的类型解析.json
文件?因此,我可以确保.json
文件具有正确的结构,仅使用TypeScript类型系统?这是一个强制转换问题。
试着像这样铸造它
function getConfig(): Config {
return Configuration as Config;
}
应该注意的是,使用类型定义无法确保JSON文件具有所需的结构。例如,您可以将
“name”:“apple”
更改为“foo”:“bar”
,它仍然可以编译而不出错。如果您想100%确定从JSON文件导入的数据是所需的结构,那么必须使用实际代码进行检查。