码迷,mamicode.com
首页 > 其他好文 > 详细

类型推论

时间:2019-08-07 12:01:02      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:function   eve   fun   定义   down   回调   推断   sed   上下文   

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 的时候,你可以访问鼠标事件对象的所有属性和方法,当访问不存在属性的时候,就会报错。

 

类型推论

标签:function   eve   fun   定义   down   回调   推断   sed   上下文   

原文地址:https://www.cnblogs.com/guangzhou11/p/11314422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!