TypeScript中any、unknown、void、never类型讲解

  • 1. any
  • 2. unknown
  • 3. void
  • 4. never

1. any

any: 表示任意类型都可以,开发中应尽量避免使用

let app:any = document.getElementById('box')

2. unknown

unknown: 一般来说,这个类型并不是开发者手写的,是网络传来的,需要配和断言使用(在使用的时候需要明确这个变量的类型,可以多次指定类型)

type A = {name:string}
type B = {age:number}
// 模拟ajax传递过来的数据
let c: unknown = JSON.parse("{'name':"Tom"}") let var1 = (c as A).name
let var2 = (c as B).age

3. void

void: 表示函数没有返回值

  • 实际编码中,其实可以 “return null” 或者 “return undefined” ,但是没有意义,应该是语法上的兼容而已
let print: () => void = function() {console.log('没有返回值的函数')
}function test(): void {// do something
}

4. never

never:表示不存在的值的类型

  • 开发中使用较少,一般用于抛出异常、无限循环的函数返回类型
  • 出现该类型的时候,注意检查代码是否有问题

eg1:

type Code = 1|2|3|undefined
let dir:Code // 表示dir的取值只能是”1,2,3,undefined“ 四者之一
switch(dir){case 1:break;case 2:break;case 3:break;case undefined:break;default:console.log('如果进入该分支,表示dir的值不在”1,2,3,undefined“中, 即为never类型')
}

语法:

function test():never {while() {// do something  }
}function test2():never {// do somethingthrow new Error('出错了!!!')
}

TypeScript中any、unknown、void、never类型讲解相关推荐

  1. 写TS效率大提升,TypeScript中常用内置工具类型Omit、Pick、Partial、Required、Readonly、Exclude 、Extract

    TS中常用的工具映射类型,让写TS时效率大大提升,避免无意义的重复性定义. 1.Omit 省略/剔除 顾名思义 可以剔除 已定义对象中 自己不需要的一部分形成新的定义类型. interface Use ...

  2. typescript 中使用 setTimeout 返回值类型 eslint 检查错误 ‘NodeJS‘ is not defined.eslint(no-undef)

    项目场景: 前端项目 使用typescript eslint 问题描述 使用setTimeout 函数,接收其返回值. 返回值类型 function setTimeout<TArgs exten ...

  3. any、never......TypeScript 中这些特殊的类型,你会用了吗?

    作者 | geekAbyte 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 以下为译文: 在本文中,我们来简要地讨论一下 TypeScript 中的三种有趣的类型:any.unknow ...

  4. [译] 理解 TypeScript 中 any 和 unknown

    译者: 在实际场景中, 很少看到有人在 Typescript 中使用 unknown , 使用unknown 可以保证类型安全,使用 any 则彻底放弃了类型检查 , 在很多情况下, 我们可以使用 u ...

  5. TypeScript学习(七):类型断言

    前面我们提到了值类型,在我们设置值类型的时候,有一种定义方式就是联合类型的设定,如下: let a: number | string; a = 1; // 类型推论:此时变量a为number类型 a ...

  6. TypeScript 中类型 any,void,unknown,never之间的区别

    文章出自个人博客 https://knightyun.github.io/2021/04/03/js-ts-type-compare,转载请申明 TypeScript 拓展了 JavaScript 的 ...

  7. 扯一扯 typescript中几种类型 (附带 环境安装)

    首先还是老生畅谈的问题哈,什么是typescript 我们怎么在本地编写ts 和如何编译成js呢 typescript 是js的超集哈,说通俗点就是 js的外壳上又套了层 皮 穿上了 更高级的衣服 但 ...

  8. typeScript面试必备之-通识七:typeScript中的可索引接口(数组,对象)+类类型接口...

    可索引接口:数组.对象的约束 (不常用) ts定义数组的方式 var arr:number[]=[2342,235325]var arr1:Array<string>=['111','22 ...

  9. [译] TypeScript 3.0: unknown 类型

    原文地址:TypeScript 3.0: The unknown Type 原文作者:Marius Schulz 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- ...

最新文章

  1. 温网停赛,AI不停赛:斯坦福新研究模拟网球名将打比赛
  2. TP 框架实现支付宝接口功能
  3. 自定义ImageView 实现双击放大缩小还原,无极缩小和旋转及拖动(多机型测试很稳定)
  4. 【CodeForces - 689D】Friends and Subsequences(RMQ,二分 或单调队列)
  5. vue面试有哪些插件_vue 前端框架面试问题汇总
  6. Spring Boot学习总结(1)——Spring Boot入门
  7. Python DearPyGui 进阶
  8. 打开VS项目时出错 MSBuild。。。
  9. 急需“五彩连珠”小游戏的代码
  10. 15b万用表怎么测电容_怎么判断启动电容好坏_启动电容怎么测量好坏_数字万用表测电容好坏...
  11. java中n次方怎么表示_java中的一个数的N次方
  12. 万字综述自动驾驶数据闭环
  13. 账户维护账户服务器,win10重装之后卡在账户登录界面怎么办_网站服务器运行维护,win10,账户...
  14. 安卓+七牛云的第三方图片存储实践
  15. flask怎么创建虚拟环境_在Windows OS中创建虚拟环境并在本地运行Flask应用程序
  16. 难说 | 新读了几本书
  17. [前端案例]百行代码实现炫酷时钟
  18. 12星座都是什么性格?(python爬虫+jieba分词+词云)
  19. 互联网+人社峰会召开腾讯开放三大能力建“人社”生态
  20. 微软下载中心使用Silverlight搜索

热门文章

  1. ECharts图表重加载刷新数据
  2. 理解断路器CircuitBreaker的原理与实现
  3. python正则表达式与文本匹配
  4. 将一根木棍分成三段,求这三段构成三角形的概率
  5. CF 940E Cashback (DP+multiset)
  6. python+HTMLTable,生成html表格
  7. 5.2-国内知识图谱相关企业和资源
  8. springboot websocket 传递 头信息 协议头 token 的前后端解决方案
  9. C#-串口-模拟量采集软件-1
  10. F2FS文件系统架构与原理分析(五)——元数据组织及管理