arg是number类型 那arg+1肯定是number类型。函数返回值Type 也对吧?

2023-03-28 0 2,977

arg是number类型 那arg+1肯定是number类型。函数返回值Type 也对吧。
为什么报错呢

function identity<Type>(arg: Type): Type {
  if(typeof arg === 'number' ){
    //Type 'number' is not assignable to type 'Type'.
    // 'Type' could be instantiated with an arbitrary 
    //type which could be unrelated to 'number'.
    return arg + 1  
  }else {
    return arg
  }
}
arg是number类型 那arg+1肯定是number类型。函数返回值Type 也对吧?

看图就很容易理解了,比如你传入的是 1 ,那么其实最终的返回值也为 1,而当符合你的 type arg === ‘number’ 时,你对其进行了 + 1 ,此时为 2 和推断的结果本身就是不一致的。

你疑惑的点其实是先入为主认为,只要你传入数字类型就会被推断为 number 了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 有软官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. 有软官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. 有软团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

有软官网_用软件,找有软 技术分享 arg是number类型 那arg+1肯定是number类型。函数返回值Type 也对吧? https://www.jiaruvip.com/1060.html

有软应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务