2 回答

TA貢獻1876條經(jīng)驗 獲得超5個贊
既然您要返回兩種不同的類型/接口(可以是字符串,也可以是myFuncResult字符串),為什么不使用管道運算符來創(chuàng)建聯(lián)合類型呢?
function myFunc(): myFuncResult | string {
if (something)
return { abc:'abc' };
return 'result';
}
或者,您可以直接創(chuàng)建聯(lián)合類型:
type myFuncResult = { abc: string } | string;
function myFunc(): myFuncResult {
if (something)
return { abc:'abc' };
return 'result';
}

TA貢獻1804條經(jīng)驗 獲得超3個贊
發(fā)生這種情況是因為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;
}
添加回答
舉報