[英]typescript function return different type of result in interface
myFuncResult interface {
abc: string
}
function myFunc():myFuncResult {
if(something) return { abc:'abc' } //ok here
return 'result' //but this line gave me warning
}
我有兩種基於條件的結果類型(對象和字符串),我如何在我的界面中聲明它?
既然您要返回兩種不同的類型/接口(它可以是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';
}
這是因為string
不等於接口類型myFuncResult
。 您可以使用abc
變量返回myFuncResult
類型:
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.