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

NSwag生成TypeScript-Angular代码:枚举与DateTime类型问题求助

解决方案

1. 修复枚举生成格式问题

后端OpenApi配置调整

在AddOpenApiDocument中启用枚举字符串序列化,确保Swagger文档输出枚举成员名称而非数字:

services.AddOpenApiDocument(settings =>
{
    // 其他已有配置...
    settings.SchemaSettings.EnumsAsStrings = true;
    settings.SchemaSettings.GenerateEnumMappingDescription = true;
});

NSwag生成配置调整

在config.nswag的codeGenerators.typeScriptAngular节点下添加/修改以下配置:

"enumStyle": "String",
"generateEnumMapping": true,
"enumNameGenerator": "OriginalEnumNameGenerator"

调整后生成的TypeScript枚举会直接复用.NET枚举的成员名称(如BB、BB18),而非自动生成的NUMBER_0格式。

2. 将DateTime类型转换为TypeScript Date类型

在config.nswag的codeGenerators.typeScriptAngular节点中设置日期时间类型映射:

"dateTimeType": "Date",
"dateType": "Date"

此配置会将.NET实体类中的DateTime属性直接生成为TypeScript的Date类型,替代默认的string类型。

生效验证

确保生成命令使用最新的config.nswag配置,例如:

nswag run config.nswag

完成以上配置调整后,重新生成TypeScript代码即可满足需求。

内容的提问来源于stack exchange,提问作者Adam Charusta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:32:04