【问题标题】:How to use google.protobuf.Any type in typescript?如何在打字稿中使用 google.protobuf.Any 类型?
【发布时间】:2020-07-12 08:00:15
【问题描述】:

1.protocol buffer 3文件test.proto

option go_package = ".;apps";
package apps;

message ShardKvMap{
  map<string, google.protobuf.Any> data = 1;
}

2.我使用grpc-web构建.ts文件

protoc -I=$DIR test.proto \
  --js_out=import_style=commonjs,binary:$OUT_DIR \
  --grpc-web_out=import_style=typescript,mode=grpcwebtext:$OUT_DIR

3.如何使用google.protobuf.typescript中的任何类型?

【问题讨论】:

    标签: typescript protocol-buffers grpc-web


    【解决方案1】:

    我无法为您提供内置的 JS 和 TS 支持,但我可以告诉您如何使用 protobuf-ts plugin(我是作者)来做到这一点。

    // this creates an empty new message
    let msg = ShardKvMap.create();
    
    // this packs the empty new message into an Any message, 
    // and adds it to map under the key "foo":
    msg.data["foo"] = Any.pack(msg, ShardKvMap);
    

    据我所知,protobuf-ts 是唯一一个完全支持 google.protobuf.Any(包括 JSON 格式)的 JavaScript / TypeScript 库。这是manual 中有关任何支持的部分。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-20
    • 2020-05-11
    • 2021-04-03
    • 2020-04-17
    • 2018-01-31
    • 2017-02-26
    • 1970-01-01
    • 2018-05-24
    相关资源
    最近更新 更多