012--TypeScript之类型推断

类型推断最佳通用类型

let x = [0, 1, null]

class Animal {
  numLegs: number
}

class Bee extends Animal {

}

class Lion extends Animal {

}

let zoo = [new Bee(), new Lion()]
//上述例子我们想让zoo推断为Animal数组类型
//但是这个数组中没有对象明确是Animal类型的
//因此zoo不能推断出
//可以明确声明出期望的类型
let zoo1: Animal[]  = [new Bee(), new Lion()]
//如果我们没有声明,类型推断会根据Bee和Lion推断出联合声明类型

类型推断之上下文类型

window.onmousedown = function (mouseEvent) {
  //console.log(mouseEvent.clickTime)//报错
  //mouseEvent上没有clickTime属性
  //TS会根据window.mousedown推断出mouseEvent类型
}
//我们可以指出mouseEvent类型
window.onmousedown = function (mouseEvent :any) {
  console.log(mouseEvent.clickTime)
}
class Animal {
  numLegs: number
}

class Bee extends Animal {

}

class Lion extends Animal {

}

function createZoo(): Animal[] {
  return [new Bee(), new Lion()]
  //这个例子最佳通用类型有三个分别是
  //Animal,Lion,Bee类型
  //在这里我们使用Animal作为最佳通用类型
}

2019-05-29  16:02:13

转载于:https://www.cnblogs.com/ccbest/p/10944376.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值