Comments (6)
https://blog.graphqleditor.com/enums-are-still-bad
from orval.
@Wtiben, the article is misleading, because it says:
Essentially we're getting everything we would from an enum, without the drawbacks of actually using an enum.
and
key issue of ‘why not just use a const’ will remain for those who find them entirely redundant
.
I gave the answer to their question above, but I'll duplicate it here for you. With a constant, you will get a non-working code:
export type MyEnum = typeof MyEnum[keyof typeof MyEnum];
export const MyEnum = {
testA: 'testA',
testB: 'testB',
testC: 'testC',
} as const;
const a = MyEnum.testA;
const arr = [MyEnum.testB, MyEnum.testC];
arr.includes(a); // TS2345: Argument of type '"testA"' is not assignable to parameter of type '"testB" | "testC"'.
At the same time, with enum you will get a working and more concise code:
export enum MyEnum {
testA = 'testA',
testB = 'testB',
testC = 'testC',
}
const a = MyEnum.testA;
const arr = [MyEnum.testB, MyEnum.testC];
arr.includes(a);
Besides, I don't insist on generating enum by default. this can be done by some flag in the config
from orval.
PR is welcome!
from orval.
Hey, I've taken up the gauntlet and contributed my first PR to the project with an optional configuration parameter to generate native Typescript enums and the code to handle it.
from orval.
@dsthode sent you 1 review comment
from orval.
@melloware thank you for the comment, I've performed the changes requested.
from orval.
Related Issues (20)
- NonReadonly type incorrectly includes readonly fields HOT 4
- Prettier: true fails for zod when not generating a schema
- Unstable return reference of generated hook when using a custom mutator hook.
- Zod: unstable/breaking variable names for validation lengths HOT 7
- Type Issue: RegEx is not accepted in `defineConfig.[name].input.filters.tags` HOT 1
- Feature request: support different enum key
- Question: Limitations of client instance customisation
- Add support to nested `useInfiniteQueryParam`
- Non-reactive query params in Vue when using useInfiniteQueryParam HOT 2
- Zod: only generates 200 response bodies HOT 9
- Types in generated react-query schema have unstable order, causing noisy diffs HOT 1
- [Feature] Add ability to pass custom types for a string given a format hint
- Strange enum generation while using anyOf in schema HOT 2
- support `fetch` client HOT 3
- MSW: overrideResponse should allow async functions
- Non-requred requestBody results in TS error
- Faker types are incompatible with contract definition for number enums
- [Feature]Enable `faker.helpers.fromRegExp()` to be applied to msw mock from pattern keyword
- support faker for API schemas HOT 6
- Zod: type string format date should be "YYYY-MM-DD" HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orval.