TypeScript学习笔记之任意类型

any类型

1.没有强制限定哪种类型,随时切换类型都可以 ,使用any类型

let a: any = 1;
a = '1';
a = [1]

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

let a;
a = 1

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

unknown顶级类型

TypeScript 3.0 引入了新的unknown 类型,它是 any 类型对应的安全类型。

unknown 和 any 的主要区别是 unknown 类型会更加严格:在对 unknown 类型的值执行大多数操作之前,我们必须进行某种形式的检查。而在对 any 类型的值执行操作之前,我们不必进行任何检查。

//unknown 可以定义任何类型的值
let value: unknown;
 
value = true;             
value = 42;               
value = "Hello World";    
value = [];               
value = {};               
value = null;             
value = undefined;        
value = Symbol("type");

区别

1.unknow类型不能作为子类型只能作为父类型,any可以作为父类型和子类型

这样写会报错

let value: unknown = '1'
let b: string = value

这样写就不会报错

let value: string = '1'
let b: unknown = value

// 或者下面这样
let value: any = '1'
let b: string = value

unknown可赋值对象只有unknown和any

let value: unknown = '1'
let b: any = value

2.如果是any类型在对象没有这个属性的时候还在获取是不会报错的

let obj:any = {b:1}
obj.a
console.log(obj.a);

如果是unknown,是不能调用属性和方法

let obj:unknown = {a:1}
obj.a

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值