Как использовать google.protobuf.Any type в машинописном тексте? - PullRequest
0 голосов
/ 12 июля 2020

1. буфер протокола 3 файл test.proto

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

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

2. я использую grp c -web build .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. Любой тип в машинописном тексте?

1 Ответ

0 голосов
/ 07 сентября 2020

Я не могу вам помочь со встроенной поддержкой JS и TS, но могу рассказать, как это сделать с помощью плагина protobuf-ts (я автор).

// 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 - единственная библиотека для JavaScript / TypeScript, которая полностью поддерживает google.protobuf.Any, включая формат JSON. Вот раздел о любой поддержке в руководстве .

...