TypeScript中的类型
1、数字类型:number
let a:number = 10
2、字符串类型:string
let a:string = 'hello'
3、布尔值类型:boolean
let a:boolean = true
4、使用字面量进行类型声明
let a: 'male'| 'female' = 'male'
let b: boolean | string = true
5、任意类型:any
- any表示的是任意类型,一个变量设置类型为any后相当于对该变量关闭了ts的类型检测
- any类型的变量可以赋值给任意变量
let a:any = 'hello'
a = 10
a = 'hello'
let b:boolean;
b = a
6、未知类型:unknown
- unknown类型的变量不能赋值给其他变量
- 使用类型断言告诉解析器变量的实际类型
let a:unknown = 'hello'
let b:string;
b = a (不可以)
b = a as string
b = <string>a
7、空值:viod
- viod用来表示空,以函数为例,就表示没有返回值的函数
function fn():void{
}
8、永远不会返回结果:never
function fn():never{
throw new Error('报错了')
}
9、对象:object
- 主要为对象中的属性指定类型
- 属性名后加上问号,表示属性名是可选的,也就是这个属性可有可无
- 使用[propName:string]:any表示任意类型的属性
- 设置函数结构的类型声明:(形参:类型,形参:类型...)=>返回值
let a:{name:string,age?:number} = {
name:'tom',
age:18
}
let b:{name:string,[propName:string]:any} = {
name:'tom',
age:18,
gender:'男'
}
let c:(a:number,b:number)=>number = function (a,b){
return a+b
}
10、数组
let array:string[] = ['a','b','c']
let array1:Array<number> = [1,2,3]
11、元祖:固定长度的数组
let a:[string,number,boolean] = ['hello',12,true]
12、枚举
enum Gender{
male=0,
female=1
}
let obj:{name:string,gender:Gender} = {
name:'Lisa',
gender:Gender.male
}
console.log(obj.gender === Gender.female)
13、类型的别名
type myType = 0|1|2
let my1:myType = 0
let my2:myType = 0
let my3:myType = 0