没有合适的资源?快使用搜索试试~ 我知道了~
类型检查机制: TS编译器在做类型检查时,所秉承的一些原则,以及表现出的一些行为。 作用:辅助开发,提高开发效率 类型推断 不需要指定变量的类型(函数的返回值类型),TS可以根据某些规则自动的为其推断出一个类型 基础类型推断 let aa; //自动推断为any类型 let s=1; //推断为number类型 let ms=[]; //推断为以any类型为元素的数组类型 let sd=[1]; //推断为number类型的数组 //设置函数默认参数的时候 let c=(x=1)=>{} //x被推断为number类型 //函数返回值 let m=(y=1)=>y+1 //m
资源推荐
资源详情
资源评论
TypeScript中的类型检查机制中的类型检查机制
类型检查机制:类型检查机制:
TS编译器在做类型检查时,所秉承的一些原则,以及表现出的一些行为。
作用:辅助开发,提高开发效率
类型推断类型推断
不需要指定变量的类型(函数的返回值类型),TS可以根据某些规则自动的为其推断出一个类型
基础类型推断
let aa; //自动推断为any类型
let s=1; //推断为number类型
let ms=[]; //推断为以any类型为元素的数组类型
let sd=[1]; //推断为number类型的数组
//设置函数默认参数的时候
let c=(x=1)=>{} //x被推断为number类型
//函数返回值
let m=(y=1)=>y+1 //m函数返回值被推断为numer类型
最佳通用类型推断(当需要从多个类型中推断一个类型的时候,TS尽可能推断出兼容当前所有类型的通用类型)
let ba=[1,null]; //number和null不兼容,推断为number和null的联合类型
注意,这里如果在ts中开启 strictNullChecks:false ,这个时候number和null就兼容了,ba就会被推断为number类型的数组
上下文类型推断(以上的表达式都是从右向左的推断,根据表达式右侧的值来推断变量的类型;还有一种类型推断是从左到右的,这就是上下文类型推断,通常发生在事件处理中)
//TS会根据左侧的事件绑定来推断右侧的事件类型
window.οnkeydοwn=(event)=>{
console.log(event)
}
类型断言类型断言
当TS的类型推断不符合我们的预期,并且我们明确知道是什么类型的时候,TS提供了一种方法,允许我们覆盖它的推论,这就是类型断言。
let foo={
}
foo.bar=1 ; //这个时候会报错,因为foo中没有bar属性
我们通过类型断言来解决这个问题
interface Foo{
bar:number
}
let foo={} as Foo;
foo.bar=1;
//如果我们不给foo添加bar属性,ts也是不会报错的,这就是类型断言的一些弊端,所以我们在开发中不要乱用类型断言
所以最好的还是在声明的时候就指定它的类型
interface Foo{
bar:number
}
let foo:Foo={
bar:1
}
类型兼容性类型兼容性
当一个类型Y可以被赋值给另一个类型X时,我们就可以说X兼容类型Y
X兼容Y:X(目标类型)= Y(源类型)
接口的兼容(少的兼容多的)接口的兼容(少的兼容多的)
interface X{
a:any;
b:any;
}
interface Y{
资源评论
weixin_38604951
- 粉丝: 4
- 资源: 893
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功