为何OpenAPI Generator无法生成TypeScript ES6 Map类型?
关于OpenAPI Generator TypeScript生成器Map类型生成的问题
- 你没有操作错误,TypeScript系列生成器(包括typescript-angular)目前对
additionalProperties的默认处理逻辑就是生成索引签名({ [key: string]: string; }),而非Map<string, string>类型,即使启用supportsES6配置也不会改变这一行为。 - Java生成器与TypeScript生成器的差异源于两者的设计逻辑:Java生态中
Map是处理动态键值对的标准类型,而TypeScript生成器默认优先贴合JSON结构的语义——索引签名对象在序列化/反序列化JSON时更直接,和OpenAPI描述的JSON数据结构匹配度更高。 - 文档中提到的“支持Map类型”并非指自动将
additionalProperties转为Map,而是指生成器能够识别并生成Map相关类型(比如当使用特定扩展或针对其他场景时)。 - 目前没有内置配置可以直接让TypeScript生成器将
additionalProperties输出为Map类型,若需要该功能,你可以通过自定义生成器的Mustache模板来修改类型输出逻辑,或者在OpenAPI Generator的官方仓库提交特性请求,建议添加对应配置项。
内容的提问来源于stack exchange,提问作者Hickory
相关产品推荐
相关产品推荐

