Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

$ref to array item leads to incorrect TypeScript type

オープン
#308 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
typescript
領域
api, devtools

調査の方向性

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 を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

fabien0102/openapi-codegen のほかの issue

fabien0102/openapi-codegen の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。