Comments (5)
Hi @ashishbairwa 👋🏻 I'm a middling TypeScript practitioner at best, but I think you're seeing a default behavior of TypeScript. Here's a TS Playground demonstrating the same behavior without Apollo Client:
That said, I'll check with the team to see if it's possible/advisable to implement some kind of utility type for this use case and get back to you!
from apollo-client.
Also, I'm not certain your stackblitz or code snippet is entirely illustrative of the issue - the former is in JavaScript and the latter doesn't use a spread operator, so I tried to recreate this in our Spotify Showcase from your description.
from apollo-client.
Hi @ashishbairwa - we've discussed some pros and cons and won't be moving forward with attempting to narrow the types in this way. Doing so could be backwards-incompatible for some users, and we don't see a straightforward way to implement such an abstraction without a considerable amount of work. In the interim I recommend adding the relevant type annotations to the objects that you spread into useQuery
. Thanks!
from apollo-client.
Do you have any feedback for the maintainers? Please tell us by taking a one-minute survey. Your responses will help us understand Apollo Client usage and allow us to serve you better.
from apollo-client.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
For general questions, we recommend using StackOverflow or our discord server.
from apollo-client.
Related Issues (20)
- React 19 has updated this SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED HOT 2
- [Data masking] Mask named fragments from data returned from `watchFragment` and `useFragment` HOT 2
- [Data masking] Mask named fragment data returned from mutations HOT 2
- [Data masking] Mask named fragments for data returned from subscriptions HOT 2
- [Data masking] Mask named fragments from data returned in `cache.readQuery` HOT 2
- [Data masking] Mask named fragments for data returned in `cache.readFragment` HOT 2
- [Data masking] Ensure data masking can lookup fragments from the fragment registry HOT 2
- Why does cache read and write operation takes a lot of time when we define client-side variable to a fragment? HOT 3
- [Data masking] Ensure data masking properly handles `null` as top-level, array item, or field with child selection set HOT 2
- [Data masking] Ensure data masking works with `@defer` payloads
- [Data masking] Provide solution for TypeScript type compatibility for APIs that use both the masked result and full result HOT 2
- [Data masking] Warning for field in migrate mode is overagressive
- Websockets can't connect through reverse proxy HOT 2
- useQuery polling query does not stop issuing network requests when the skip argument switches from false to true HOT 3
- `useFragment` does not re-render as expected in v3.11.5 HOT 4
- UseFragment producing a warning during store misses (TypeError: Cannot read properties of undefined) HOT 6
- Cannot read properties of undefined (reading 'data') HOT 18
- Still no alternative to onCompleted change in 3.8 HOT 5
- useSuspenseQuery with skipToken still requires an apolloClient HOT 7
- skip: true and skipToken behave differently with useSuspenseQuery HOT 1
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 apollo-client.