Я использую protobufjs
v4.1.3 и задавался вопросом, можно ли каким-то образом проверить, имеет ли поле в ответе protobuf тип Map
.
Например У меня есть следующий прототип файла:
message Test {
required string string_field = 1;
map<uint32, uint32> test_field = 2;
}
, и при загрузке прототипа и использовании некоторых тестовых данных я получаю следующий результат:
{
string_field: 'test',
test_field:
Map {
field:
T {
// ...
}
keyElem:
Element {
// ...
}
valueElem:
Element {
// ...
}
map: { '0': [Object] }
}
}
Как я могу различить guish a protobufjs.Map
из обычного JS объекта? Насколько я понял, сделать instanceof protobufjs.Map
невозможно, так как библиотека не предоставляет такую возможность. Единственное, о чем я подумал, - это проверить, есть ли у объекта поле get
типа function
, но для меня это звучит как взлом. Может быть, есть другой способ более элегантный?