类型推论
类型
2023-09-11 14:22:18 时间
1.基本的类型推论
let name = "lison"; name = 123; // error 不能将类型“123”分配给类型“string”
2.当我们定义一个数组或元组这种包含多个元素的值的时候,多个元素可以有不同的类型,这种时候 TypeScript 会将多个类型合并起来,组成一个联合类型
let arr = [1, "a"]; arr = ["b", 2, false]; // error 不能将类型“false”分配给类型“string | number”
此时的 arr 的元素被推断为string | number
,也就是元素可以是 string 类型也可以是 number 类型,除此两种类型外的类型是不可以的
3. 上下文类型
window.onmousedown = function(mouseEvent) { console.log(mouseEvent.a); // error 类型“MouseEvent”上不存在属性“a” };
我们可以看到,表达式左侧是 window.onmousedown(鼠标按下时发生事件),因此 TypeScript 会推断赋值表达式右侧函数的参数是事件对象,因为左侧是 mousedown 事件,所以 TypeScript 推断 mouseEvent 的类型是 MouseEvent。在回调函数中使用 mouseEvent 的时候,你可以访问鼠标事件对象的所有属性和方法,当访问不存在属性的时候,就会报错。
相关文章
- 辛巴学院-Unity-剑英陪你零基础学c#系列(三)计算与类型
- python null类型
- Python字典类型内部做判断赋值
- Matlab中数值类型(一)
- 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (“@xx“): 对于类型特定的元数据,数据类型 0x62 (sql_variant)的类型无效。
- Google Earth Engine ——美国LANDIFRE植被数据集包括。生物物理设置(BPS)环境场地潜力(ESP)现有植被冠层(EVC)现有植被高度(EVH)现有植被类型(EVT)数据集
- Redis的String类型
- MVC验证11-对复杂类型使用jQuery异步验证
- Redis 笔记与总结4 set 和 zset 类型
- 【Java】Springboot ajax发送JSON类型的POST参数
- SQL列类型
- iOS之crash分析篇--捕获signal类型的崩溃信息
- js对象生成ts类型声明
- Delphi 类类型和对象
- Delphi 子界类型
- 神奇的类型擦除
- python绘图库matplotlib:画线的标志marker的设置——类型/size/空心/边线颜色及大小/显示marker超出边界部分
- java使用省略号代替多参数(参数类型... 参数名)
- SpringBoot集成RocketMQ实现各种消息类型
- 《C#零基础入门之百识百例》(六十二)结构体类型变量 -- 学生数据记录
- Docker registry 、网络类型、跨主机访问 --3
- 计算机网络管理 MIB管理信息库,OID标识符,SNMP网络管理服务的基本操作类型