openapi-typescript version
7.12.0
Node.js version
22.x.x
OS + version
13.1
Description
Hi 👋
I’m running into an issue with type inference when using openapi-typescript together with openapi-fetch.
It seems that tuple types defined in the OpenAPI schema are widened to regular arrays in the generated types.
Reproduction
import createClient from "openapi-fetch";
interface operations {
foo: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
data: {
id: string | number;
content: [{ foo: "" }];
}[];
};
};
};
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
403: {
headers: {
[name: string]: unknown;
};
content?: never;
};
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
500: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
}
interface paths {
"/foo": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["foo"];
put?: never;
post: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
const client = createClient<paths>({ baseUrl: "" });
async function main() {
const { data } = await client.GET("/foo");
// ^ `content` is typed as `{ foo: "" }[]`
}
Expected result
content should be typed as [{ foo: "" }]
Required
Extra
openapi-typescript version
7.12.0
Node.js version
22.x.x
OS + version
13.1
Description
Hi 👋
I’m running into an issue with type inference when using
openapi-typescripttogether withopenapi-fetch.It seems that tuple types defined in the OpenAPI schema are widened to regular arrays in the generated types.
Reproduction
Expected result
contentshould be typed as[{ foo: "" }]Required
npx @redocly/cli@latest lint)Extra