npm i @types/node -D (node环境支持的依赖必装)
npm i ts-node --g
【2】使用ts-node
二、Any 类型 和 unknown 顶级类型
【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
三、Any 类型 和 unknown 顶级类型的区别:
【1】unknow类型比any更加严格,unknown可赋值对象只有unknown 和 any
//unknown 可以定义任何类型的值
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
【2】any类型在对象没有这个属性的时候还在获取是不会报错的,unknow 是不能调用属性和方法
如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj:any ={b:1}
obj.a
如果是unknow 是不能调用属性和方法
let obj:unknown ={b:1,ccc:():number=>213}
obj.b
obj.ccc()