请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

约束泛型

老师您好,既然可以使用定义为array,那么我如果想要访问length属性,我可不可以这样写呢(联合类型)?
function echoWithArr(arg: T:string | array): T {
console.log(arg.length)
return arg
}
虽然这样写肯定不对,但这种想法对吗?如果对的话,写成联合类型怎么写呢

正在回答 回答被采纳积分+3

1回答

张轩 2022-03-15 09:58:44

同学你好

想法很好,但是你这样对应扩展性不够的,没有理解约束的初衷,比如这样只能指定参数是 字符串 和 数组?但是假如是我一个普通对象,有 length属性,这样就不符合要求了。请记住 interface 是 duck typing 的实现,不管是什么类型,只要符合有 length 就可以胜任这里的参数。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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