为了账号安全,请及时绑定邮箱和手机立即绑定

打字稿函数在界面中返回不同类型的结果

打字稿函数在界面中返回不同类型的结果

一只斗牛犬 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 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号