Skip to content

Enhance types generation #3542

Open
Open

Description

@DemianParkhomenko

Is your feature request related to a problem? Please describe.

Currently, all types are optional, or at least a lot of them. See: https://github.com/search?q=repo:googleapis/google-api-nodejs-client+%22%7C+null%22&type=code So, this leads to an awful development experience.

For example, see Google Calendar API:

But on the other hand, we can see in docs that some fields are optional and some are not.

https://developers.google.com/calendar/api/v3/reference/events#resource

image

Describe the solution you'd like
I would like to see real types with the minimum amount of optional fields.

Describe alternatives you've considered
Of course, we can check everything manually or disable TypeScript checking at all. But I believe it's not a good solution, as why do we need typings which do not work.
#3151

Activity

  1. added
    priority: p3Desirable enhancement or fix. May not be included in next release.
    type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.
    on Aug 19, 2024
  2. Yuripetusko commented on Jan 30, 2026

    @Yuripetusko

    This makes it even harder to implement I am guessing due to FieldMask standard query string where any caller can select which fields should be returned. So the library would have to infer types based on fields string that is passed as $fields query param to API. The devloper experience is prettu bad I agree, but also I can imagine that this is a tough one, especially since most types are generated from json schema that is itself generated from protobuff definitions I believe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: p3Desirable enhancement or fix. May not be included in next release.size: lPull request size is large.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions