Búsqueda de sitios web

protocol buffers - ¿Cómo usar el tipo google.protobuf.Any en TypeScript?


1. el archivo de protocolo buffer 3 test.proto

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

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

2. yo uso grpc-web para construir archivo .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. ¿Cómo usar el tipo google.protobuf.Any en TypeScript?

Respuesta #1

No puedo ayudarte con el soporte integrado de JS y TS, pero puedo decirte cómo hacerlo con el plugin protobuf-ts (soy el autor).

// 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);

Hasta donde sé, protobuf-ts es la única biblioteca para JavaScript/TypeScript que admite completamente google.protobuf.Any, incluido el formato JSON. Aquí está la sección sobre el soporte de Any en el manual.

Artículos relacionados