首页 > 其他分享 >TS-any vs unknown

TS-any vs unknown

时间:2024-03-07 18:00:44浏览次数:33  
标签:变量 unknown TS vs 类型 any 赋值

相同点:

1. 都是TS 系统是顶层类型:any, unknown

2. 任何类型的值都可以赋值给该类型

 

any 存在的问题:

1. 类型推断问题:any类型的变量不再进行类型检查,失去了TS的意义;所以对于那些类型不明显的变量,一定要显式声明类型,防止被推断为any

2. 污染问题:any类型的变量可以赋值给任意类型的变量,所以污染了其他类型的变量

let x: any = "hello";
let y: number;
y = x; // 不报错
y * 123; // 不报错

 

unknown 存在的意义:

1. 解决 any 类型污染其他变量问题

2. 严格版的 any

3. 只能赋值给 any 和 unknown 类型的变量,赋值其他变量会报错,避免了污染

4. 不能直接调用 unknown 类型的方法和属性;使用typeof 类型缩小后才可以调用

5. 只能进行比较运算(===、&&、 ? typeof  instanceof;使用typeof 类型缩小后才可以逻辑运算

 

标签:变量,unknown,TS,vs,类型,any,赋值
From: https://www.cnblogs.com/monkey-K/p/18054919

相关文章

  • 计讯物联环保数采仪TS910全力打造绿色宜居生态环境
    植树造林自古以来就有调节气候、涵养水源、减轻大气污染的益处。如今,随着科技的迅速发展,我们除了能够以植树造林来改善生活环境,保持生态系统,还能通过物联网、大数据、云计算、边缘计算、人工智能等新一代信息技术集成应用于监测管控区域的空气质量与森林的全周期动态情况,实时监测......
  • SpringBoot3+Consul配置,启动后,居然不读bootstrap.yml的配置文件,直接连本地localhost:8
    问题描述如题。bootstrap.yml的配置文件: consul控制台打印的日志: 解决方案:booststrap.yml的配置文件缩进搞错了,所以压根就没有读到配置。正确的缩进:  ......
  • vscode 远程连接设置免密登录
    一、找到windows下的秘钥文件,路径为C:\Users\wubin\.ssh二、上传到linux主机下,更改名字为“authorized_keys”,并更改权限。存放路径::~/.ssh$cat~/id_rsa.pub>>authorized_keyssudochmod600authorized_keys三、重启sshd服务即可。使用vscode再次连接即不需要输入密码......
  • 使用VS Code 连线MySQL使用
    使用vscode操作mysql,要添加dll1.使用vscode创建MVC项目,在*****.csproj文件里添加ItemGroup点击查看代码<ProjectSdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net5.0</TargetFramework></PropertyGroup><Item......
  • Blazor笔记-Form components
    更新记录注意:非教程。纯笔记,日常查询用的。需要教程的小伙伴找几本书看看即可哈哈,有Vue基础的话非常快,概念都是通的。非工作需要不建议深入学习Blazor,深入Vue吧,用的多,哈哈。完整目录地址:https://www.cnblogs.com/cqpanda/p/17596348.html点击查看2024年3月7日发布。2023......
  • 文心一言 VS 讯飞星火 VS chatgpt (209)-- 算法导论15.4 6题
    六、设计一个O(nlgn)时间的算法,求一个n个数的序列的最长单调递增子序列。(提示:注意到,一个长度为i的候选子序列的尾元素至少不比一个长度为i-1候选子序列的尾元素小。因此,可以在输入序列中将候选子序列链接起来。)要写代码的时候,请用go语言。文心一言,代码正常运行:要设计一......
  • C++ 萃取机 Iterator Traits
    IteratorTraits萃取出Iterator的性质:迭代器种类、迭代器所指数据类型、迭代器距离类型、迭代器所指数据引用、迭代器所指数据指针。根据不同的迭代器种类可以采取不同的算法策略。但是用iter::interator_categotry、iter::value_type、iter::pointer...就可以访问到迭代器的......
  • AT_abl_e Replace Digits 题解
    分析线段树模板题。维护一个区间\([l,r]\)中\(\sum\limits_{i=l}^r10^{n-i}\)的答案。将某个区间\([l,r]\)全部修改成\(x\)之后的表示的数就是\(x\times(\sum\limits_{i=l}^r10^{n-i})\)。区间修改可以用线段树,用快速幂或者预处理弄出来\(10^x\),建树的时候就能把每......
  • Android hexedit toybox tcsetattr /dev/pts/0: Permission denied
    cas:/$/data/local/tmp/toybox-aarch64hexedit/data/local/tmp/tree.statichexedit:tcsetattr/dev/pts/0:Permissiondenied 好像是不能用tcsetattr,selinux会拒绝 cas:/$ls-l/dev/ptsls:/dev/pts:Permissiondenied https://blog.zhanghai.me/fixing-line-e......
  • ants - 目前开源最优的协程池
    ants-目前开源最优的协程池目前我们的项目重度使用ants协程池,在开启一个go的时候并不是用go关键字,而是用一个封装的go函数来开启协程。框架底层,则是使用ants项目来实现协程池。ants是一个协程池的实现,这个项目短小精悍,非常适合用来做代码研究。ants的作者是国人pa......