Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >TypeScript-自动类型推断

TypeScript-自动类型推断

原创
作者头像
杨不易呀
发布于 2023-09-28 11:28:41
发布于 2023-09-28 11:28:41
2550
举报
文章被收录于专栏:杨不易呀杨不易呀

自动类型推断概述

不用明确告诉编译器具体是什么类型, 编译器就知道是什么类型

根据初始化值自动推断:

  • 如果是先定义在初始化, 那么是无法自动推断的
代码语言:typescript
AI代码解释
复制
let value;
value = 123;
value = false;
value = 'abc';
  • 如果是定义的同时初始化, 那么 TS 就会自动进行类型推断
代码语言:typescript
AI代码解释
复制
let value = 123;
value = 456;
value = false;
value = 'abc';
image-20211201094922211
image-20211201094922211

如上的 let value = 123; TS 会自动推断为 let value: number = 123; 所以如上的 value 变量只能存储 number 类型的数据,如上是单个数据类型的推断,接下来在来看一个 联合类型 的推断:

代码语言:typescript
AI代码解释
复制
let arr = [1, 'a'];
arr = ['a', 'b', 'c', 1, 3, 5, false];

如上的 let arr = [1, 'a']; TS 会自动推断为 let arr: (number | string) = [1, 'a']; 所以如上的 arr 变量只能存储 numberstring 类型的数据。

根据上下文类型自动推断

代码语言:typescript
AI代码解释
复制
window.onmousedown = (event) => {
    console.log(event.target);
}

当我在编译器当中编写了如上的代码之后编译器在函数的入参当中的参数后面给了一个提示如下:

image-20211201102006526
image-20211201102006526

可不是博主自己编写的哦,说明它已经推断出了具体的类型了,雷同如下代码:

代码语言:typescript
AI代码解释
复制
window.onmousedown = (event: MouseEvent) => {
    console.log(event.target);
}
输入图片说明
输入图片说明

最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【TypeScript】类型推断
当我们在TypeScript中声明变量但没有明确指定其类型时,TypeScript会尝试根据变量的值进行类型推断。这样可以帮助我们避免手动指定所有类型,使代码更简洁,同时也提供了更好的类型安全性。下面是一些关于类型推断的案例,详细描述每个案例的类型推断过程:
星辰大海c
2023/11/03
4480
【TypeScript】类型推断
TypeScript-泛型
还是和之前一样的套路,利用一个需求来引出没有使用泛型的弊端,需求: 定义一个创建数组的方法, 可以创建出 指定长度 的数组, 并且可以用 任意指定的内容 填充这个数组:
杨不易呀
2023/09/28
1820
TypeScript-泛型
TypeScript手记(六)
TypeScript 里,在有些没有明确指出类型的地方,类型推断会帮助提供类型。如下面的例子:
用户7572539
2020/08/26
1.1K0
typescript基础篇(7):类型检查机制
所谓类型检查机制,就是编程语言编译器在做类型检查时,所秉持的原则,以及表现出的行为。
一粒小麦
2020/08/28
1.6K0
typescript基础篇(7):类型检查机制
04. 从TypeScript入手,驾驭HarmonyOS开发的技术风潮!-----------(番外篇)
指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定具体类型的一种特性。
全栈若城
2024/03/12
1400
04. 从TypeScript入手,驾驭HarmonyOS开发的技术风潮!-----------(番外篇)
TypeScript-基础类型
如上代码的含义定义了一个名称叫做 val 的变量, 这个变量中将来只能存储数值类型的数据,定义数值类型可以利用 number 注解来进行指定,指定了之后就不能在存储其它类型的数据了,错误示例如下:
杨不易呀
2023/09/28
1670
TypeScript-基础类型
深入类型系统_TypeScript笔记8
编译器能够根据变量初始值3推断出变量类型是number,因此多数场景下不必显式声明类型,它猜得到
ayqy贾杰
2019/06/12
1K0
深入类型系统_TypeScript笔记8
约束即类型、TypeScript 编程内参(一)
本文是《约束即类型、TypeScript 编程内参》系列第一篇:约束即类型,主要记述 TypeScript 的基本使用和语法。
腾讯IVWEB团队
2020/06/24
9630
《现代Typescript高级教程》类型推断
TypeScript通过类型推断可以自动推导出变量和表达式的类型,提高代码的可读性和可维护性。
linwu
2023/07/27
2200
TypeScript-声明
在经过 TypeScript-声明的介绍了之后我们知道可以通过 declare 来进行声明,那么在 TS 当中呢它是不推荐我们将声明的定义和使用放在同一个文件当中的,它推荐的是将声明的定义单独写到一个文件当中里面去,好了介绍了这些内容之后我们先来看看我们把声明的定义单独写到一个文件当中去,然后在使用声明的地方看看能不能使用声明的定义内容吧。
杨不易呀
2023/09/29
2020
TypeScript-接口
TypeScript 中的接口(Interface)是用于定义对象的结构和类型的强大工具。它允许开发者明确定义对象应该包含哪些属性和方法,并在代码中实现类型检查和约束。接口提高了代码的可读性、可维护性和类型安全性,促进了团队协作。通过接口,可以创建自定义类型,以适应各种复杂数据结构和对象,从而在开发过程中提供更好的代码组织和错误预防。
杨不易呀
2023/09/28
1510
TypeScript-接口
TypeScript-泛型约束
博主需求: 要求指定的泛型类型必须有 length 属性才可以指定该类型为泛型的类型:
杨不易呀
2023/09/28
2580
TypeScript-泛型约束
TypeScript-装饰器
如上代码的含义为给 Person 这个类绑定了一个 普通的装饰器,这个装饰器的代码会在定义类之前执行, 并且在执行的时候会把这个类传递给装饰器,除了如上的步骤还是不行的编译器还是会报错,还需要开启 experimentalDecorators 修改 tsconfig.json:
杨不易呀
2023/09/29
1630
TypeScript-声明合并
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/29
2600
TypeScript-数组和元祖类型
介绍其基本概念、语法特性以及如何开始使用它来构建类型安全的JavaScript应用程序。无论您是新手还是有经验的开发者,都能在这篇文章中找到有关TypeScript的重要信息和实用技巧。让我们一起探索这个强大的编程语言!
杨不易呀
2023/09/28
2150
TypeScript-数组和元祖类型
TypeScript-infer关键字和TypeScript-unknown类型
博主假设有这么一个需求: 定义一个类型, 如果传入的是数组, 就返回数组的元素类型, 如果传入的是普通类型, 则直接返回这个类型。
杨不易呀
2023/09/29
2220
TypeScript-索引签名和只读属性
索引签名和只读属性是TypeScript中的两个重要概念。索引签名允许您创建动态属性的对象,提高灵活性,而只读属性通过 "readonly" 关键字确保属性不可被修改,有助于保持对象的不可变性。这两个特性共同帮助开发者编写更具可维护性和类型安全性的代码
杨不易呀
2023/09/28
2470
TypeScript-索引签名和只读属性
TypeScript-去除null和undefined检测
先不管三七二十一,首先来看一个函数的定义,该函数的内部返回了一个函数的回调,主要作用就是获取一个字符串的长度,可是呢函数的入参是一个联合类型,如下:
杨不易呀
2023/09/28
4420
TypeScript-继承和函数、函数声明和重载
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/28
3290
TypeScript-继承和函数、函数声明和重载
初识TypeScript:入门体验与简介
介绍其基本概念、语法特性以及如何开始使用它来构建类型安全的JavaScript应用程序。无论您是新手还是有经验的开发者,都能在这篇文章中找到有关TypeScript的重要信息和实用技巧。让我们一起探索这个强大的编程语言!
杨不易呀
2023/09/28
1810
初识TypeScript:入门体验与简介
相关推荐
【TypeScript】类型推断
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档