学习 TypeScript2 (任意类型any, unknown)

仅供学习使用,原文链接:学习TypeScrip2(任意类型)_小满zs的博客-CSDN博客

Any 类型和 unknown 顶级类型

        nodejs 环境执行ts

        npm i @types/node --save-dev (node环境支持的依赖必装)

        npm i ts-node --g

1.没有强制限定哪种类型,随时切换类型都可以,我们可以对 any 进行任何操作,不需要检查类型

let anys: any = 123
anys = '123'
anys = true

2.声明变量的时候没有指定任意类型默认为any

let anys;
anys = '123'
anys = true

3.弊端:如果使用any 就失去了TS类型检测的作用

4.typescript 3.0中引入的unknown类型也被认为是 top type, 但它更安全。与any一样,所有类型都可以分配给unknown。

        unknown类型比any更加严格,当你要使用any的时候可以尝试使用unknown。

//unknown 可以定义任何类型的量
let value : unknown;

value = true;
value = '123'
value = 123
value = []
value = {}
value = null
value = undefined
value = Symbol('type')

//这样会报错, unknown类型不能作为子类型,只能作为父类型, any类型可以作为父类型和子类型
//unknown类型不能赋值给其他类型
let names: unknown = '123'
let names2: string = names

//any 类型可以赋值给其他类型
let names: any = '123'
let names2: string = names

//unknown 可赋值的对象只有unknown 和 any 
let bbb: unknown = '123'
let aaa: any = '456'

aaa = bbb

区别2

//如果是any 类型在对象没有这个属性的时候,还在获取,是不会报错的
let obj: any = {b :1}
obj.a

//如果是unknown 是不能调用属性和方法
let obj: unknown = {b: 1, ccc(): number=> 123}
obj.b
obj.c()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值