繁体   English   中英

Typescript 中的 Json 中的枚举与接口?

[英]Enum in Json in Typescript with Interface?

我有一个 json 文件,如下所示:

{ 
     "ui": "Header"
}

而“ui”是一个枚举。 我用 JSON.Parse 在我的 typescript webpack 环境中加载这部分

“类型‘字符串’不可分配给类型‘UiDescriptionTypeEnum’。”

我试图转换的界面是:

interface UI
{
     ui: UiDescriptionTypeEnum
}

虽然有这样的枚举:

enum UiDescriptionTypeEnum
{
     Header = "Header"
}

这是一个有效的 typescript 播放错误:

https://www.typescriptlang.org/play?#code/KYOwrgtgBAsgngUXBAsAKAN7qjqAJYAQwBNgAnKAXigCICTyb0BfddASxABdyAzQgMbBYcAJLc+g4eixpcUHgGcuALhFJILNmgBuhCgCtFAexBUoGBcGVqA5PVJlbUVmnQAbYFyiE18cTxk-ELmRqYA3EA

枚举中的值区分大小写

尝试重新定义枚举如下

enum UiDescriptionTypeEnum
{
     header = "header"
}

更新了链接中的示例

enum MyEnum
{
    Header = "Header"
}

interface MyInterface 
{
    test: MyEnum
}

var json = { test: 'Header' }
var jsonObj = {test: MyEnum.Header} // option 1:  to define the type from Enum

let a : MyInterface =  json as MyInterface; // option 2: cast js object to your interface ( a more likely scenario)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM