$ref to array item leads to incorrect TypeScript type
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- typescript
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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];
}
- Lingua principale
- TypeScript
- Stelle
- 634
- Fork
- 83
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di fabien0102/openapi-codegen
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fabien0102/openapi-codegen#343 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fabien0102/openapi-codegen#342 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
fabien0102/openapi-codegen#356 ·
-
update dependencies & removed unused deprecatedForse già presa @el-j l’ha presa 1 giorno fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
fabien0102/openapi-codegen#354 ·
-
deepMerge mutates its arguments, corrupting request payloads across callsForse già presa @richard-willis-chevin l’ha presa 45 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
fabien0102/openapi-codegen#349 ·
Tutte le issue di fabien0102/openapi-codegen
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
farbenmeer/tapi#531 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
naver/egjs-flicking#971 ·
-
Renderer treats a sub-pixel width difference as a resize, which cancels the `motion()` entranceAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Tenant
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
MTES-MCT/Dossier-Facile-Frontend#2061 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
backnotprop/plannotator#1784 ·
I maintainer di solito rispondono entro 1 giorno