TS学习-base
一、基础类型
布尔类型
let bool:boolean = false //直接赋值
let bool1:boolean
bool1 = false //先声明变量再赋值
数值类型
let num:number = 123
num = 123
num = 0b11010101 //二进制
num = 0o173 //八进制
num = 0x7b //十六进制
字符类型
let str:string
str = "123"
str = "liaomei"
//模板字符串
str = `数值是${num}`
console.log(str) //打印数值是123
数组类型
//写法一
let arr:number[]
arr = [1,2,3]
//写法二
let arr1:Array<number>
arr1 = [1,2,3]
//混合数组 写法一
let arr2:(string|number)[]
arr2 = [1,'liao']
//混合数组 写法二
let arr3:Array<string|number>
arr3 = [1,'mei']
元组类型
//元组类型 规定长度及类型
let tuple:[string,number,boolean]
tuple = ["liao",1,false]
枚举类型
enum Roles{
SUPER_ADMIN,
ADMIN = 4,
USER
}
console.log(Roles.SUPER_ADMIN) //0 //通过属性名查找
console.log(Roles.USER) //5
console.log(Roles[4]) //ADMIN 通过值查找
any类型
let value:any //任意类型都可以 尽量少的使用
value = 1
value = '123'
value = false
//定义一个任意类型的数组
let arr4:any[] = [1,'s',false]
void类型
const consoleText = (text:string):void =>{
console.log(text)
}
consoleText("asd")
//undefined和null都可以赋给void类型
let v:void
v = undefined
v = null
null和undefined
let u:undefined
u = undefined
// u = 123 报错 不能讲123赋给undefined类型
let n:null
n = null
num = undefined
num = null
never类型
const errorFun = (message:string) =>{
throw new Error(message)
}
const infiniteFun = () =>{
while(true){}
}
object类型
let obj ={
name:'liaomei'
}
let obj1 = obj
obj1.name = 'lili'
console.log(obj)
function getObject(obj:object):void{
console.log(obj)
}
getObject(obj1)
类型断言
//类型断言 两种方式 (target as string)或者<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
}
}
console.log(getLength("123"))
console.log(getLength(123))