typescript任意类型

16 阅读1分钟

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

unknow:可以定义任何类型

let value: unknown;
value = true;             // OK
value = 42;               // OK
value = "Hello World";    // OK
value = [];               // OK
value = {};               // OK
value = null;             // OK
value = undefined;        // OK
value = Symbol("type");   // OK
 
//这样写会报错unknow类型不能作为子类型只能作为父类型 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

any和unknown区别

//any类型在对象没有这个属性的时候还在获取是不会报错的
let obj:any = {b:1}
obj.a
//unknow 是不能调用属性和方法
let obj:unknown = {b:1,ccc:():number=>213}
obj.b
obj.ccc()