[BridgeJS] Support union types
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- Calme
- Stack technique
- javascript, swift, typescript
- Domaine
- api
Piste de recherche
Aucun fichier ni test n’est nommé. Commencez par localiser la prise en charge existante de rawvalue mentionnée dans l’issue et examiner comment les unions TypeScript présentées correspondent à Swift ; clarifiez comment les changements à l’exécution entre les variantes doivent être représentés. C’est terminé lorsque l’union Example et la signature example() interagissent correctement, y compris les changements dynamiques entre Foo et Bar.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Swift
- Étoiles
- 986
- Forks
- 76
- Merge moyen
- 21 h 11 min
- PR mergées (30 j)
- 4
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de swiftwasm/JavaScriptKit
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 1 personne assignée ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
swiftwasm/JavaScriptKit#781 · 3 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 1 personne assignée ·
Toutes les issues de swiftwasm/JavaScriptKit
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
manaflow-ai/cmux#13763 ·
-
type: feature request
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
googleapis/google-cloud-swift#1036 · 1 commentaire ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
wultra/mtoken-sdk-ios#253 ·
-
The correction-threshold rationale says 17 restraint cases collide; the current corpus has 16 Ouvertearea:dictation documentation P2
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
uttrflow/uttrflow-swift#1180 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100