hyperweb-io / hyperweb-io/ts-codegen

Don't add typescript index signatures on enum unions

Open
#119 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
126
Forks
31
Avg merge
19m
Merged PRs (30d)
2

Description

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,
},
}
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.