acacode / acacode/swagger-typescript-api

Non generic syntax for generating types with discriminators

未关闭
#677 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
4.1k
派生
436
PR 合并指标
30 天内没有已合并 PR

描述

I am generating zod schemas based on types generated by swagger-typescript-api. The schema generation doesn't work well with generics so I was wondering if it would be possible to have an alternative way of generating types with discriminators?

Today, this is the syntax it seems:
```
export type Value = BaseValue &
(
| BaseValueTypeMapping<"Type1", Value1>
| BaseValueTypeMapping<"Type2", Value2>
| BaseValueTypeMapping<"Type3", Value3>;

export type Value1 = BaseValue;

export type Value2 = BaseValue ;

export type Value3 = BaseValue ;

interface BaseValue {
$type: string;
value: number;
}

type BaseValueTypeMapping = {
$type: Key;
} & Type;
```

It would be nice if it was possible to just generate the types with discriminators like so:

```
export type Value = BaseValue &
(
| Value1
| Value2
| Value3 ;

export type Value1 = BaseValue & {
$type: "Type1"
};

export type Value2 = BaseValue & {
$type: "Type2"
};

export type Value3 = BaseValue & {
$type: "Type3"
};

interface BaseValue {
$type: string;
value: number;
}
```

Is this possible?

Thanks

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。