openapi-generator-cli生成typescript-axios接口带引号原因咨询
问题原因
- 生成器安全转义逻辑触发:typescript-axios生成器默认会对不合法的JS/TS标识符自动加单引号转义,避免输出代码编译报错,触发场景包括:字段名包含连字符、空格、特殊符号,字段名以数字开头,字段名和
delete/class/new/function这类JS/TS保留字重名。 - 旧版本模板bug:6.0.0之前版本的openapi-generator-cli中,typescript-axios生成器的模型模板存在硬编码问题,只要开启
withSeparateModelsAndApi=true配置,会无差别给所有模型字段加单引号,和字段名本身是否合法无关。 - 配置缺失:当前生成命令没有显式指定属性命名规则,当后端返回的接口schema字段命名和生成器默认转换规则不匹配时,也会触发不必要的引号包裹。
解决方法
- 先把openapi-generator-cli升级到6.0.0以上的稳定版本,新版本已经修复了旧版本强制给所有字段加引号的模板问题。
- 在生成命令的
--additional-properties参数里追加两个配置:
modelPropertyNaming=camelCase,stringEnums=false
modelPropertyNaming=camelCase会统一把字段转换为合法的小驼峰标识符,stringEnums=false会关闭非必要的字符串字面量包裹逻辑。
- 如果只是个别字段因为是保留字、含特殊字符被加了引号,不需要额外处理。TS本身同时支持带引号和不带引号的属性写法,编译后不会产生任何运行时差异,不影响实际使用。
内容的提问来源于stack exchange,提问作者later
相关产品推荐
相关产品推荐

