使用protoc-gen-ts_proto时google.api.field_behavior未生效问题
问题原因与解决方案
原因
protoc-gen-ts_proto 默认不会解析 google.api.field_behavior 的标记来映射 TypeScript 的可选/必填属性,必须通过编译参数显式启用该功能。
解决方案
修改你的编译命令,添加 --ts_proto_opt=useFieldBehavior=true 参数,让插件识别 google.api.field_behavior 的配置:
protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto \ -I. \ --ts_proto_out=./src \ --ts_proto_opt=useFieldBehavior=true \ ./proto/person.proto
额外说明
启用该参数后,插件会根据字段的 field_behavior 标记生成对应属性:
- 标记
REQUIRED:生成必填属性(无?后缀) - 标记
OPTIONAL:生成可选属性(带?后缀) - 未标记的字段:保持插件默认行为(若需要将这类字段也设为可选,可额外添加
--ts_proto_opt=useOptionals=messages参数)
重新执行编译命令后,name3 会生成你期望的 name3?: string 格式。
内容的提问来源于stack exchange,提问作者Jenia Be Nice Please
相关产品推荐
相关产品推荐

