hyperweb-io / hyperweb-io/ts-codegen
Don't add typescript index signatures on enum unions
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 126
- Forks
- 31
- Merge medio
- 19 min
- PR fusionados (30 d)
- 2
Descripción
In the generated types we often see the index signature: `[k: string]: unknown` on the enum union types, which in TS essentially allows for any additional property in the interfaces.
```ts
export type GovernanceDetailsForString =
| {
Monarchy: {
monarch: string
[k: string]: unknown
}
}
| {
External: {
governance_address: string
governance_type: string
[k: string]: unknown
}
}
```
```rs
/// Governance types
#[derive(Deserialize, Serialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
#[non_exhaustive]
pub enum GovernanceDetails {
/// A single address is admin
Monarchy {
/// The monarch's address
monarch: T,
},
/// An external governance source
External {
/// The external contract address
governance_address: T,
/// Governance type used for doing extra off-chain queries depending on the type.
governance_type: String,
},
}
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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.
Línea de trabajo
No se indica ningún archivo fuente ni ninguna prueba. Empieza siguiendo el recorrido del generador que produce interfaces de unión de enums de TypeScript a partir del enum de Rust mostrado y, después, compara la salida generada antes y después del cambio. Se considera terminado cuando los miembros de la unión del enum ya no incluyen la firma de índice `[k: string]: unknown`.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rust, typescript
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100