簡體   English   中英

typescript 函數在界面中返回不同類型的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM