[BridgeJS] Support union types
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript, swift, typescript
- Área
- api
Línea de trabajo
No se nombra ningún archivo ni prueba. Empieza por localizar el soporte existente para rawvalue al que se hace referencia en el issue y revisar cómo las uniones de TypeScript mostradas se mapean a Swift; aclara cómo deberían representarse los cambios en tiempo de ejecución entre variantes. Se considera terminado cuando la unión Example y la firma example() interoperan correctamente, incluidos los cambios dinámicos entre Foo y Bar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Swift
- Estrellas
- 986
- Forks
- 76
- Merge medio
- 21 h 11 min
- PR fusionados (30 d)
- 4
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de swiftwasm/JavaScriptKit
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 1 asignado ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
swiftwasm/JavaScriptKit#781 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 1 asignado ·
Todos los issues de swiftwasm/JavaScriptKit
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
manaflow-ai/cmux#13763 ·
-
type: feature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
googleapis/google-cloud-swift#1036 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
wultra/mtoken-sdk-ios#253 ·
-
The correction-threshold rationale says 17 restraint cases collide; the current corpus has 16 Abiertoarea:dictation documentation P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
uttrflow/uttrflow-swift#1180 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100