1.首先,ts里面规定类型的时候最好不要全部设置:any,不然就失去了ts的意义 2.ts对于字面类型可进行定义,但是改变值是不行的
let a:99
a=100//这里是不行的
let b=string|number
b="100"
b=100
//这里都是可以的
3.unkonw和any是有区别的,这里unkonw类型不能赋值另一个强制定义好类型的数据
let a:unkonw
a=100
a='100'
a=true//这些都是可以的
let w:string
a=w//这里是不行的
4.数组的类型定义
let arr=[] as any []
let arr:Arrary<number>
let arr:number[]
5.特别注意对象里面的...展开运算符和{}进行解构 6.void类型和never类型
function fnc():void{
return undefined
}
function fnz():never{
throw new Error('出错啦!') //这里抛出一个异常,这里的never不会出错
while(true){} //这里的死循环也不会使函数有返回值
}
6.元组tuple,元组进行增删改,push,pop,替换这个不受类型的影响
let:arr:[number,string,any]
arr=[12,'12',true]
let arr1:[number,string?]
arr1=[12]//这里不会报错
arr1.push[12,12]//这里的arr1=[12,12,12]
7.枚举enum,可以更好的语义化(这里使用效果很好)
enum orderInfo {
add:0,
updata:1,
delete:2
}
let order:number
if(order===orderInfo.add){
//这里进行增加操作
}
8.类型别名
type:Name='张三'||'李四'
let a='王五'//这里会报错
let a='张三'//这里是正确的