diff --git a/backend/mpc-system/services/service-party-app/electron/modules/grpc-client.ts b/backend/mpc-system/services/service-party-app/electron/modules/grpc-client.ts index 15431d3e..7f17736b 100644 --- a/backend/mpc-system/services/service-party-app/electron/modules/grpc-client.ts +++ b/backend/mpc-system/services/service-party-app/electron/modules/grpc-client.ts @@ -6,6 +6,17 @@ import { EventEmitter } from 'events'; // Proto 文件路径 const PROTO_PATH = path.join(__dirname, '../../proto/message_router.proto'); +// 定义 proto 包结构类型 +interface ProtoPackage { + mpc?: { + router?: { + v1?: { + MessageRouter?: grpc.ServiceClientConstructor; + }; + }; + }; +} + // 加载 Proto 定义 const packageDefinition = protoLoader.loadSync(PROTO_PATH, { keepCase: true, @@ -77,8 +88,8 @@ export class GrpcClient extends EventEmitter { */ async connect(host: string, port: number): Promise { return new Promise((resolve, reject) => { - const proto = grpc.loadPackageDefinition(packageDefinition) as Record; - const MessageRouter = (proto.mpc?.router?.v1 as Record)?.MessageRouter as grpc.ServiceClientConstructor; + const proto = grpc.loadPackageDefinition(packageDefinition) as ProtoPackage; + const MessageRouter = proto.mpc?.router?.v1?.MessageRouter; if (!MessageRouter) { reject(new Error('Failed to load MessageRouter service definition'));