C# 使用nSwag生成TypeScript代理:对可为Null的int进行Null检查
我们使用.net核心WebAPI后端,并使用nSwag生成用于前端的TypeScript代理。这是后端/C#代码: 以及控制器方法C# 使用nSwag生成TypeScript代理:对可为Null的int进行Null检查,c#,typescript,nswag,C#,Typescript,Nswag,我们使用.net核心WebAPI后端,并使用nSwag生成用于前端的TypeScript代理。这是后端/C#代码: 以及控制器方法 [Route("SaveEditedDto")] [HttpPost] public EditResultDto SaveEditedDto(MyDto dto) 为“save”方法生成的TypeScript如下所示: saveEditedDto(id: number | undefined, otherObject:
[Route("SaveEditedDto")]
[HttpPost]
public EditResultDto SaveEditedDto(MyDto dto)
为“save”方法生成的TypeScript如下所示:
saveEditedDto(id: number | undefined, otherObject: number | undefined): Observable<EditResultDto> {
let url_ = this.baseUrl + "/api/MyDomain/SaveEditedDto?";
if (oid === null)
throw new Error("The parameter 'oid' cannot be null.");
else if (oid !== undefined)
url_ += "Oid=" + encodeURIComponent("" + oid) + "&";
if (otherObject === null)
throw new Error("The parameter 'otherObject' cannot be null.");
else if (otherObject !== undefined)
url_ += "OtherObject=" + encodeURIComponent("" + otherObject) + "&";
url_ = url_.replace(/[?&]$/, "");
saveEditedTo(id:number |未定义,otherObject:number |未定义):可观察{
让url=this.baseUrl+“/api/MyDomain/saveEditedTo?”;
如果(oid==null)
抛出新错误(“参数“oid”不能为空。”);
else if(oid!==未定义)
url+=“Oid=“+encodeURIComponent”(“+Oid)+”&”;
如果(其他对象===null)
抛出新错误(“参数“otherObject”不能为空。”);
else if(其他对象!==未定义)
url+=“OtherObject=“+encodeURIComponent”(“+OtherObject)+”&”;
url=url。替换(/[?&]$/,“”);
关于这一点,我实际上有两个问题:
我相信,您想要实现的不是摆脱空检查本身,而是避开它。在我看来,它就像nswag生成的代码。这里清楚地描述了它:
else if (oid !== undefined)
url_ += "Oid=" + encodeURIComponent("" + oid) + "&";
您可能需要做的就是将未定义的而不是null作为参数oid
和otherObject
传递
这个提示是由创造者自己给出的,在这里也是如此:
else if (oid !== undefined)
url_ += "Oid=" + encodeURIComponent("" + oid) + "&";
else if (otherObject !== undefined)else if (otherObject !== undefined)
url_ += "OtherObject=" + encodeURIComponent("" + otherObject) + "&";