首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >protobuf.js pbts:从没有null | undefined的.proto生成typescript类型

protobuf.js pbts:从没有null | undefined的.proto生成typescript类型
EN

Stack Overflow用户
提问于 2019-03-22 07:40:42
回答 2查看 750关注 0票数 2

我正在使用pbts为一个大型的protobuf库生成typescript声明文件。

问题是pbts的输出使得每个属性都是未定义的或为空,例如

interface IMyThing { myProp?: string | null; },我想要的是:

interface IMyThing { myProp: string; }

实际的protobuf定义不是可选的。它们看起来像:

message MyThing { string myProp = 1; }

有没有什么标志或方法可以调整pbts的源代码或对其输出进行后处理,以便我可以删除这些不正确的未定义/空属性?

EN

回答 2

Stack Overflow用户

发布于 2019-05-10 07:27:41

更新:由于protobuf 3中的所有消息都是可选的,这是设计出来的。

票数 1
EN

Stack Overflow用户

发布于 2020-09-05 01:38:48

对于proto3语法:

虽然消息字段始终是可选的,但像string这样的标量字段始终是必需的。

因此,myProp: string将是正确的表示。

在二进制线格式中,根本不写入空字符串。但是,当读取不包含此字段数据的二进制数据时,生成的代码应设置默认值"“。

protobuf 3.12.0中有一个新的实验性特性,允许将字符串字段设为可选。则签名应为myProp?: stringmyProp: string | undefined

我推荐使用ts-protoprotobuf-ts (这是我的实现的无耻插件)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55290811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档