$ref to array item leads to incorrect TypeScript type
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- typescript
調査の方向性
Start by reproducing the generated TypeScript from the bundled OpenAPI schema, focusing on the $ref from Dog.dogName to DogNames/items. The change is complete when the property is typed as DogNames[number] rather than DogNames, while the DogNames array type remains unchanged.
索引モデルが issue の本文から書いたものです。
説明
I noticed a bug with the OpenAPI code generation output where a property that references an array item schema is being typed as an array in the generated TypeScript.
After bundling with swagger-parser bundler (because the original schema used an relative YAML file reference), the final JSON OpenAPI schema looks like this:
"components": {
"schemas": {
"DogNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
}
},
"Dog": {
"type": "object",
"properties": {
"dogName": {
"$ref": "#/components/schemas/DogNames/items"
}
}
}
}
}
In the Dog schema, the property dogName references #/components/schemas/DogNames/items, which means it should be typed as a single object that matches the item structure from the DogNames array.
export type DogNames = {
name?: string;
}[];
export type Dog = {
dogName?: DogNames; // <-- This is incorrect
};
Expected output:
export type DogNames = {
name?: string;
}[];
export type Dog = {
dogName?: DogNames[number];
}
- 主要言語
- TypeScript
- スター
- 634
- フォーク
- 83
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
fabien0102/openapi-codegen のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
fabien0102/openapi-codegen#343 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
fabien0102/openapi-codegen#342 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
fabien0102/openapi-codegen#356 ·
-
update dependencies & removed unused deprecated対応中かも @el-j が 10 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
fabien0102/openapi-codegen#354 ·
-
deepMerge mutates its arguments, corrupting request payloads across calls対応中かも @richard-willis-chevin が 54 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
fabien0102/openapi-codegen#349 ·
fabien0102/openapi-codegen の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
umami-software/umami#4637 ·
メンテナーはふだん 3 日以内に返信
-
Hotkeys fire when pressed with the Ctrl key, so browser shortcuts also trigger player actions対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
muxinc/media-chrome#1332 ·
メンテナーはふだん 5 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
polarsource/polar#15580 ·
メンテナーはふだん 1 日以内に返信
-
accepted bug via-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
pingdotgg/t3code#20931 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug/1-unconfirmed kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信