亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

打字稿函數在界面中返回不同類型的結果

打字稿函數在界面中返回不同類型的結果

一只斗牛犬 2022-05-14 15:10:38
myFuncResult interface {  abc: string}function myFunc():myFuncResult { if(something) return { abc:'abc' } //ok here return 'result' //but this line gave me warning}我有兩種基于條件的結果類型(對象和字符串),如何在我的界面中聲明它?
查看完整描述

2 回答

?
慕運維8079593

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';

}


查看完整回答
反對 回復 2022-05-14
?
狐的傳說

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;

}


查看完整回答
反對 回復 2022-05-14
  • 2 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號