2 回答

TA贡献1876条经验 获得超5个赞
既然您要返回两种不同的类型/接口(可以是字符串,也可以是myFuncResult字符串),为什么不使用管道运算符来创建联合类型呢?
function myFunc(): myFuncResult | string {
if (something)
return { abc:'abc' };
return 'result';
}
或者,您可以直接创建联合类型:
type myFuncResult = { abc: string } | string;
function myFunc(): myFuncResult {
if (something)
return { abc:'abc' };
return 'result';
}

TA贡献1804条经验 获得超3个赞
发生这种情况是因为string不等于接口类型myFuncResult。myFuncResult您可以使用abc变量返回类型:
myFunc(): myFuncResult {
if (something)
return { abc:'abc' } //ok here
return {abc: 'result'} //but this line gave me warning
}
更新:
此外,null如果符合条件,您可以退货:
myFunc():myFuncResult {
if (something)
return { abc:'abc' } //ok here
return null;
}
添加回答
举报