swift - Typescript 联合类型的 Swift 等价物是什么?
问题描述
我想在 Swift 上创建类似这样的东西,用于 Alamofire json 解析
interface Question {
value: string;
data: [string]
}
interface Advice {
type: string;
data: { value: string }
}
interface CurrentItem {
type: string;
data: Advice | Question | string
}
解决方案
使用带有关联值的枚举来表示不同的可能性:
enum Data {
case advice (Advice)
case question (Question)
case string (String)
}
然后,您可以将 CurrentItem 创建为 Struct
struct CurrentItem {
type: String
data: Data
}
如果您从 JSON 解码,您需要使结构符合 Decodable 并编写一个自定义init(from decoder: Decoder)
方法来查看提供的数据,然后创建 Data 枚举的适当实例。
推荐阅读
- markdown - Atom 编辑器,Markdown:从编辑模式创建并打开指向另一个文件的链接?
- java - 试图在java中调用一个方法但不能让它工作
- c# - ASP .Net Core JsonStringEnumConverter 不序列化响应
- amazon-web-services - 为 CRUD 应用程序配置 S3 存储桶设置
- scala - Spark - 错误:无法加载类 - spark-submit
- python - 如何从本网站抓取中提取此文本?美丽汤
- heroku - Pandoc转换为pdf不适用于heroku
- git - 从未合并的文件的 git 日志
- c - C字节序和字节数组
- python - 烧瓶运行给我 ModuleNotFoundError