1.数组
let arr: number[] = [1,2,3]
let arr2: Array<number> = [1,2,3]
let arr3: Array<string> = ['1','2']
2.联合类型
let arr1: (number | string)[] = ['1',2]
//加括号表示数组里可以有数字也可以有字符串
let arr2: number | string[]
//不加括号表示arr2要么是数字型,要么是字符型的数组
3.类型别名
type customArray = (number | string)[]
let arr1: customArray = [1,'2']
4.函数类型
(1)单独给指定函数参数类型和返回值类型
(2)同时指定参数和返回值类型
5.void类型
函数没有返回值时使用
function text(number1 : number):void{
console.log(number1)
}
6.函数的可选参数
使用场景说参数不是必须的
// 可选参数不可位于必选参数后面
function text(start? : number, end? : number):void{
console.log('开始索引:'+start, '结束索引:'+ end)
}
7.对象类型
let obj: {
name: string //如果不换行后面要加分号
age: number
sayHi: (name: string) => void
} = {
name: 'zhangsan',
age: 1,
sayHi(name){}
}
8.对象也有可选属性,也用?
9.接口:用来复用对象
interface PersonObj {
name: string
age: number
sayHi: () => void
}
let obj: PersonObj = {
name: 'h',
age: 1,
sayHi:()=>{}
}
10.接口继承
// 接口继承
interface point2d {
x: number
y: number
}
interface point3d extends point2d {
z: number
}
let obj: point3d = {
x: 1,
y: 3,
z: 5
}
11.元组
明确知道数组里有多少元素,和类型,并规定
// 元组
let ponter: [number, number] = [1,2]
12.类型推论
13类型断言
14字面量类型: 就是任意值都可以作为类型
15枚举类型
访问枚举成员用('.')
枚举成员是有值的
字符串枚举
16any类型
不推荐使用any类型