You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:33:20