protocolbuffers / protocolbuffers/protobuf-javascript
Generate alternate accessor for fields with presence
Nessuno ha ancora preso questa issue.
- Lingua principale
- JavaScript
- Stelle
- 471
- Fork
- 91
- Merge medio
- 3h 57m
- PR unite (30g)
- 2
Descrizione
When I executed the toObject method on a message with a field marked optional, that field became the default value like 0 or "". I expect it would be undefined.
I guess it is because the third argument of getFieldWithDefault is not undefined.
Since proto3 currently support optional keyword, when optional is specified, I think it should be undefined if it is not given.
proto
syntax = "proto3";
package com.book;
message OptTest {
optional string name = 1;
}
generated toObject code
proto.com.book.OptTest.toObject = function(includeInstance, msg) {
var f, obj = {
name: jspb.Message.getFieldWithDefault(msg, 1, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
versions
$ npm list --depth=0 -g
/usr/local/lib
+-- google-protobuf@3.21.2
+-- grpc_tools_node_protoc_ts@5.3.3
`-- grpc-tools@1.12.4
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il caso di un campo opzionale generando il messaggio OptTest mostrato e chiamando toObject. Inizia dal codice toObject generato e dalla chiamata a getFieldWithDefault; determina in che modo la presenza dovrebbe influire sul valore predefinito. Il lavoro è completo quando un campo opzionale non impostato produce undefined invece di 0 o di una stringa vuota, con copertura per il proto mostrato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript
- Ambito
- backend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100