Skip to content

Not declaring generated ProtoGrpcType inheritance #2851

@enderteszla

Description

@enderteszla

Problem description

When using proto-loader-gen-types for ts-types generating, the root ProtoGrpcType type is not declared to extends grpc.GrpcObject.
Because of that, when I grpc.loadPackageDefinition(...), I cannot cast it directly to as MyProtoGrpcType and I have to cast it to as unknown first.
Though root ProtoGrpcType is in fact the extension of grpc.GrpcObject -- the only problem is the absence of declaration.

Reproduction steps

import * as grpc from '@grpc/grpc-js';
import * as protoLoader from '@grpc/proto-loader';
import type { ProtoGrpcType as MyProtoGrpcType } from 'proto/my';

const myPackageDefinition = protoLoader.loadSync('my.proto', { includeDirs: [ 'proto' ] });
const myProtoDescriptor = grpc.loadPackageDefinition(myPackageDefinition) as unknown as MyGrpcType;

Environment

  • Any OS name, version and architecture
  • Any Node version
  • Any Node installation method (nvm or others)
  • @grpc/proto-loader:0.7.13

Additional context

@murgatroid99 , I strongly appreciate your creature: the proto-loader-gen-types!
It is a very helpful thing! And I even can go on with as unknown cast.
But this duct-tape of as unknown can be removed -- and please let's do it.
I created a PR addressing this problem, it's very simple. Please take a look.

Activity

linked a pull request that will close this issue on Nov 17, 2024
enderteszla

enderteszla commented on Nov 18, 2024

@enderteszla
Author

I should add: the same thing happens with ServiceClient we're building from ServiceClientConstructor in that very GrpcObject. The generated client always de facto implements grpc.ServiceClient -- though it's not declared. So for now user has to cast as unknown first and only then cast as {MyServiceClient}.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @murgatroid99@enderteszla

      Issue actions

        Not declaring generated ProtoGrpcType inheritance · Issue #2851 · grpc/grpc-node