Typescript学习Day4(类型推断)

1,typescript里,在有些没有明确指出类型的地方,类型推断会帮助提供类型

let num = 10 
let str = 'nineone'  //尽管没有声明是什么类型但是ts会自动解析

2,最佳通用类型

let arr = [0,11,true,null]  //(number | boolean | null)[]
class animal{
	breed:string
}
class dog extends animal{}
class cat extends animal{}
let zoo = [new dog(),new cat()]  //(dog | cat)[]

let zoo:animal[] = [new dog(),new cat()]  //animal[]

3,上下文类型

//1,typescript类型推断会按另外一种方式,我们称作‘上下文类型’
//2,上下文类型的出现和表达式的类型以及所处的位置相关
 window.onmousedown = function(mouseEvent){
	console.log(mouseEvent.target)  //ok
	console.log(mouseEvent.nineone} //不ok
}

//参数类型注解,上下文就会被忽略
 window.onmousedown = function(mouseEvent:any){
	console.log(mouseEvent.target)  //ok
	console.log(mouseEvent.nineone} //ok
}

//上下文类型会有很多情况下使用到
//1,通常包含函数的参数,赋值表达式的右边,类型断言,对象成员,数组字面量和返回值语句
//2,上下文类型也会作为最佳通用类型的候选类型
class animal{
	breed:string
}
class dog extends animal{}
class cat extends animal{}
function createZoo():animal[]{
	return [new dog(), new cat()]
}
//animal dog cat 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值