hyperweb-io / hyperweb-io/ts-codegen
[Proposal] Defining a way to discriminated unions in interfaces
- Lenguaje dominante
- TypeScript
- Estrellas
- 126
- Forks
- 31
- Merge medio
- 19 min
- PR fusionados (30 d)
- 2
Descripción
Currently now when you have an interface or type that use an union, is really hard to access to the desired property.
In the example below you could see how is not possible to access to a specific property from an union (at least you force the type). However defining generics in the root object and make programmers define the expected union is more much friendly programming experience.

The generation process could be something like:
1. Check for Unions in the object, generate as many generic as unions in the root object and start from A to Z.
2. Generate each type of an union separately.
3. Do conditional type until check all types in the union.
Follow the same process with Unions that have nested Unions.
You could find a full example here: https://gist.github.com/j0nl1/22dde0ef0bfaf1c0bea870a0a39e039e
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
El issue no proporciona ningún archivo del repositorio ni ningún punto de entrada de pruebas; comienza reproduciendo el ejemplo de union del gist enlazado y siguiendo dónde la generación de interfaces y tipos gestiona las unions. Compara la salida generada con el comportamiento solicitado para generics y conditional types, incluidas las unions anidadas. Se considera terminado cuando el generador admite el comportamiento propuesto de interfaces para discriminated unions, con cobertura para los casos descritos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100