[BridgeJS] Support union types
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- javascript, swift, typescript
- Bereich
- api
Rechercherichtung
Es wird keine Datei oder kein Test genannt. Beginne damit, die im Issue referenzierte bestehende rawvalue-Unterstützung zu finden, und prüfe, wie die gezeigten TypeScript-Unions auf Swift abgebildet werden; kläre, wie Änderungen zur Laufzeit zwischen Varianten dargestellt werden sollten. Erledigt ist die Aufgabe, wenn die Example-Union und die example()-Signatur korrekt zusammenspielen, einschließlich dynamischer Änderungen zwischen Foo und Bar.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Swift
- Sterne
- 986
- Forks
- 76
- Ø Merge
- 21 Std. 11 Min.
- Gemergte PRs (30 T.)
- 4
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus swiftwasm/JavaScriptKit
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 1 zugewiesene Person ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
swiftwasm/JavaScriptKit#781 · 3 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 1 zugewiesene Person ·
Alle Issues in swiftwasm/JavaScriptKit
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
manaflow-ai/cmux#13763 ·
-
type: feature request
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
googleapis/google-cloud-swift#1036 · 1 Kommentar ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
wultra/mtoken-sdk-ios#253 ·
-
area:dictation documentation P2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
uttrflow/uttrflow-swift#1180 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100