手牵手系列之TypeScript基础类型"/>
手牵手系列之TypeScript基础类型
布尔类型
let bool:boolean = false
// 或者
let bool:boolean
bool = true
数值类型
let num:number = 123// 二进制
num = 0b1111011
// 八进制
num = 0o173
// 十六进制
num = 0x7b
字符串类型
let str:string
str = 'abc'
str = `数值是${num}`
数组类型
// 只能是number类型的数组
// 写法一
let arr:number[]
arr=[1,2,3]// 写法二
let arr1:Array<number>// 既可以是number类型也可以是string类型
let arr2:(number | string)[]
// 或者
let arr3:Array<number | string>
arr2=[1,"dssdsd"]
元组类型
// 必须按照设定的类型一一对应,否则报错
let tuple : [string,number,boolean]
tuple = ['abc',1,true]
枚举类型
enum Roles {SUPER_ADMIN,ADMIN,USER
}
console.log(Roles.SUPER_ADMIN) // 0
console.log(Roles.ADMIN) // 1
console.log(Roles.USER) // 2// 示例
// 场景:后台根据返回的0,1,2分别对应超级管理员、管理员、用户,使用枚举可以清楚对应
if(Roles.SUPER_ADMIN){}// 表示等于0的时候 即超级管理员进行判断
// 默认定义
enum Roles {SUPER_ADMIN = 1,ADMIN = 5,USER = 8
}
console.log(Roles.SUPER_ADMIN) // 1
console.log(Roles.ADMIN) // 5
console.log(Roles.USER) // 8
// 定义某一个进行叠加
enum Roles {SUPER_ADMIN = 1,ADMIN,USER
}
console.log(Roles.SUPER_ADMIN) // 1
console.log(Roles.ADMIN) // 2
console.log(Roles.USER) // 3// 定义中间某一个,第一个永远是0
enum Roles {SUPER_ADMIN,ADMIN=2,USER
}
console.log(Roles.SUPER_ADMIN) // 0
console.log(Roles.ADMIN) // 2
console.log(Roles.USER) // 3
// 根据索引值,获取对应的值
enum Roles {SUPER_ADMIN,ADMIN=2,USER
}
console.log(Roles[0]) // SUPER_ADMIN
console.log(Roles[2]) // ADMIN
console.log(Roles[3]) // USER
any类型
let value:any
value = true
value = 'abc'
value = 123 let value:any[] = ['abs',123,false]
void类型
// void表示没有返回任何类型的值
const consoleText = (text:string):void=>{console.log(text)
}let v : void
v = undefined
v = null
null、undefined类型
如果是undefined、null类型,则只能赋值undefined、null。但是如果是其他类型,则可以赋值undefined与null。
// 如果是undefined类型,则只能赋值undefined
let u : undefined
u = undefined// 如果是null类型,则只能赋值null
let u : null
u = null
never类型
// 表示永远不存在的类型
const erroeFnc = (message:string):never => {throw new Error(message)
}
// 如果是死循环,没有返回值
const inifiniteFunc = ():never=>{while(true){}
}
类型断言
const getLength = (target:string|number):number=>{if((<string>target).length||(target as string).length===0){return (<string>target).length}else{ return target.toString().length}
}// 类型断言书写的两种方式
1、<string>target 尖括号形式
2、target as string as形式
更多推荐
手牵手系列之TypeScript基础类型
发布评论