From 7cec5b2b4ce1b574c46f1283adbc63524f8d5452 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 28 Dec 2025 07:33:10 -0800 Subject: [PATCH] =?UTF-8?q?fix(service-party-app):=20=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?gRPC=20=E5=AE=A2=E6=88=B7=E7=AB=AF=20TypeScript=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 ProtoPackage 接口定义 proto 包结构类型,避免类型推断错误 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../electron/modules/grpc-client.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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'));