// 1布尔类型
let bool:boolean
bool=true
// 数值类型(支持多种进制)
let num:number
num=1;
num=0b1111011
num=0o173
num=0x7b
// 字符类型
let str:string
str='22'
str=`${bool}333`
// 数组
let arr:number[]
arr=[2]
// 写法2
let arr1:string[]
arr1=['33','333']
let arr2:(string|boolean|number)[]
arr2=[3,true,'ss']
// 元组类型(长度和类型必须一一对应)
let arr3:[string,number,boolean]
arr3=['22',3,false]
// 枚举变量
enum Roles{
SUPER_ADMIN,
ADMIN,
USER
}
// var Roles
// (function (Roles){ Roles[Roles['SUPER_ADMIN']=0]="SUPER_ADMIN"
// Roles[Roles['ADMIN']=1]="ADMIN"
// Roles[Roles['USER']=2]="USER"
// }(Roles||Roles={}))
// any类型
let value:any
value='abc'
value=123
value=false
value=[1,2,'33']
let arr4:any[]
// void(可以赋值为undefined和null)
const consoleText=(text)=>{
console.log(text);
}
let v:void
v=undefined
v=null
// null 和undefined(除了(never)是所有类型的子类型,可以赋值给任何类型)
let u:undefined
u=null
let n:null
n=undefined
// never类型(永远没有结果的函数)
let errorFunc=(message:string):never=>{
throw new Error(message)
}
errorFunc=()=>{
while(true){}
}
// obj类型(内存中地址的引用)
let ob1={
name:'jarry'
}
let ob2=ob1;
ob1.name='lixing'
function getObject(obj:object):void{
console.log(obj)
}
// 类型断言(jsx语法中不仅支持 as 不支持(<string>target))
const getLength=(target:(string|number)):number=>{
if((target as string).length||(target as string).length===0){
return (target as string).length;
}else{
return target.toString().length;
}
}