理解
在写ts代码时,需要在最下面写上 export {}
ts在定义变量时,会指定类型,这些类型是已经存在的,必须严格按照类型进行赋值,可以对其修改,但是修改值的类型必须和定义时的类型一致
基本类型
Boolean
let isShow:boolean = true
let isShow:boolean = 123 //会报错 只有布尔类型才可以
console.log(isShow)
string
let name:string = 'xiaoqiang'
let name:string = 123 //会报错 只有字符串类型才可以
console.log(name)
数字number
let age:number = 100
let age:number = '100' //会报错
console.log(age)
数组
ts中数组只能放同一类型的数据,如果不是,则会报错
第一种定义数组类型数据
let attr:number[] = [1,2,3]
let attr:number[] = [1,2,3,'s'] //会报错
let name:string[] = ['xiaoqiang','wangcai']
console.log(attr)
console.log(name)
第二种定义数组类型的数据
let attr:Array<number> = [1,2,3]
let attr:Array<number> = [1,2,3,'s'] //会报错
let name:Array<string> = ['xiaoqiang','wangcai']
console.log(attr[0])
console.log(name)
元组Tuple
它是一个容器,容器里面可以放不同类型的数据,但是也需要指定,顺序也需要一致
let Stu:[string,age] = ['wangcai',100]
let Stu:[string,age] = [100,'wangcai'] //会报错 顺序不一致
console.log(Stu[0])
枚举 enum
需要先把枚举定义出来,然后再使用
enum Color{
RED,
GREEN=20,
BLUE
}
let colorR:Color = Color.RED
console.log(color) //0 会打印出序号 默认是从0开始 也可以对其赋值
let colorG:Color = Color.GREEN
let colorB:Color = Color.BLUE
console.log(colorG) //20
console.log(colorB) //21
console.log(Color[20]) //GREEN
any
当使用any定义数据时,它可以把任何类型的值赋给这个变量,上面的类型可以修改值,但是值必须和定义时类型一致,any不需要,可以在修改时赋给任何类型的数据
let data:any = 4
data = 'wangcai'
data = [1,2,3]
console.log(data) //[1,2,3]
void
在函数上使用时,说明这个函数没有返回值
function getName(firstname:string,lastname:string):void{
console.log(firstname+''+lastname)
}
getName('wang','cai')
函数有返回值时
function getName(firstname:string,lastname:string):string{
return firstname+''+lastname
}
console.log(getName('wang','cai'))
null
null是一个数据类型,它的值只有null,它是所有类型的子类型(可以把它赋给任何类型当数据)
let age:null = null
let name:string = 'wangcai'
name = null
//第二句和第三句可以使用一句表达
let name:string = null
console.log(name) //null
console.log(age) //null
undefined
undefined是一个数据类型,它的值只有undefined,它是所有类型的子类型(可以把它赋给任何类型当数据)
let age:undefined = undefined
let name:string = 'wangcai'
name = undefined
//第二句和第三句可以使用一句表达
let name:string = undefined
console.log(name) //undefined
console.log(age) //undefined
断言
就是告诉编译器自己知道这个数据数据是什么类型的,这样就省了编译器的自动识别
let name:any = 'wangcai'
console.log(name.length)
为什么可以计算出length 因为编译器会自动识别出类型是string string有计算length的方法
手动的告诉编译器数据的类型
第一种使用<>
let name:any = 'wangcai'
let strLength = (<string>name).length
console.log(strLength)
第二种使用as
let name:any = 'wangcai'
let strLength = (name as string).length
console.log(strLength)