OpenAPITools / OpenAPITools/openapi-generator
[BUG][typescript-angular] All properties generated with "?:" even when they are not optional
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Bug Report Checklist
- Have you provided a full/minimal spec to reproduce the issue?
- Have you validated the input using an OpenAPI validator (example)?
- Have you tested with the latest master to confirm the issue still exists?
- Have you searched for related issues/PRs?
Description
All properties generated by the openapi-generator are defined with ?: e.g.
/**
* Gets or sets the angle of reflection.
*/
angle?: number;
expected:
/**
* Gets or sets the angle of reflection.
*/
angle: number;
openapi-generator version
4.3.1
OpenAPI declaration file content or url
https://gist.github.com/Dunkhan/604694e5ae47c1162f784f1d3f3a78b9
Generation Details
npx openapi-generator generate -i D:\Work\testApi.json -g typescript-angular -c ./generate.api.options.json -o dist/api
generate options:
{
"npmName": "my-api",
"ngVersion": "9.1.0",
"fileNaming": "kebab-case",
"apiModulePrefix": "myPrefix"
}
Steps to reproduce
Run the command
Look in the file
\dist\api\model\effect-angle-values.ts
Related issues/PRs
none found
Suggest a fix
I am fully aware I might be doing something wrong, missing a flag, or reporting an intended behaviour. Please help me out if this is the case by explaining how I can get the generator to generate without the ?
I tried the flag nullSafeAdditionalProps but I found that this simply added "| null" to all nullable properties. This is good and I intend to keep using it but it does not solve the problem.
The reason this is an issue is that it I wish to use strict type checking and the properties being potentially undefined means that I have to fill all my code with undefined checks. These properties should never be undefined.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the report with the shown openapi-generator command and inspect dist/api/model/effect-angle-values.ts, using the linked OpenAPI declaration as input. Trace the typescript-angular model generation entry point and its handling of required properties; done means generated required fields no longer use ?: while nullable behavior remains distinct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, java, typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100