类型';GrpcObject';没有构造签名uuTypeScript grpc

类型';GrpcObject';没有构造签名uuTypeScript grpc,typescript,grpc-js,Typescript,Grpc Js,我是ts新手。我和nest一起工作。我正在尝试使用我用js编写的grpc客户端。但是,当我尝试导出我的grpc服务对象时,出现以下错误: import {loadPackageDefinition,credentials} from '@grpc/grpc-js'; import {loadSync} from '@grpc/proto-loader'; const packageDefinition = loadSync(`${__dirname}/protos/main.proto`, {

我是ts新手。我和nest一起工作。我正在尝试使用我用js编写的grpc客户端。但是,当我尝试导出我的grpc服务对象时,出现以下错误:

import {loadPackageDefinition,credentials} from '@grpc/grpc-js';
import {loadSync} from '@grpc/proto-loader';

const packageDefinition = loadSync(`${__dirname}/protos/main.proto`, {
    keepCase: true,
    longs: String,
    enums: String,
    defaults: true,
    oneofs: true,
    arrays: true
});


let { AuthService } = loadPackageDefinition(packageDefinition) ;

 export const auth_client = new AuthService(`localhost:${process.env.auth_grpc_port?process.env.auth_grpc_port:30030}`,credentials.createInsecure());
错误:

src/lib/grpc.client.ts:16:34-错误TS2351:此表达式不正确 可构造的。并非“GrpcObject”类型的所有成分| ServiceClientConstructor | ProtobufTypeDefinition“是可构造的。 类型“GrpcObject”没有构造签名


不幸的是,
loadPackageDefinition
输出的对象的TypeScript类型过于通用,无法有效地使用。一种解决方案是使用与
@grpc/proto-loader
版本0.6.x一起分发的TypeScript生成器为原型文件生成TypeScript类型。然后,您可以使用类型断言使
loadPackageDefinition
的输出具有反映您的原型文件的特定结构