[BridgeJS] Support union types
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 冷清
- 技术栈
- javascript, swift, typescript
- 领域
- api
调研方向
未指定文件或测试。首先定位 issue 中引用的现有 rawvalue 支持,并检查所示 TypeScript 联合类型如何映射到 Swift;明确应如何表示变体之间的运行时变化。完成的标准是 Example 联合类型和 example() 签名能够正确互操作,包括 Foo 和 Bar 之间的动态变化。
由索引模型根据 Issue 内容生成。
描述
Union types (other than rawvalue which are already done) should be supported. The best way to do this is unclear to me so this issue functions as a discussion point.
Example:
export type Foo = { foo: string }
export type Bar = { bar: string }
export type Example = Foo | Bar
export function example(): Example
Could maybe generate:
@JSClass struct Foo {
@JSGetter var foo: String
@JSSetter func setFoo(_ value: String) throws(JSException)
}
@JSClass struct Bar {
@JSGetter var bar: String
@JSSetter func setBar(_ value: String) throws(JSException)
}
@JSClass enum Example {
case foo(Foo)
case bar(Bar)
}
@JSFunction func example() throws(JSException) -> Example
Note that ts unions can change dynamically eg if I set foo to null and bar to a string, the type changes from Foo to Bar, so idk if that works with an enum like this in Swift.
- 主要语言
- Swift
- 星标
- 986
- 派生
- 76
- 平均合并
- 21 小时 11 分钟
- 30 天内合并 PR
- 4
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
swiftwasm/JavaScriptKit 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 已指派 1 人 ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking 未关闭
难度 4/5 3-5 天 新手友好度 48/100
swiftwasm/JavaScriptKit#781 · 3 条评论 ·
-
难度 4/5 3-5 天 新手友好度 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 已指派 1 人 ·
查看 swiftwasm/JavaScriptKit 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
manaflow-ai/cmux#13763 ·
-
type: feature request
难度 2/5 1-3 小时 新手友好度 82/100
googleapis/google-cloud-swift#1036 · 1 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 78/100
wultra/mtoken-sdk-ios#253 ·
-
area:dictation documentation P2
难度 2/5 1-3 小时 新手友好度 78/100
uttrflow/uttrflow-swift#1180 ·
-
难度 2/5 1-3 小时 新手友好度 78/100