TypeScript基础类型

TS的基础类型几乎和JS的类型一致,同样包含string,number,boolean,array...等

声明字符串

let str: string = "hello ts"
str = "thanks"

声明布尔值

let boo: boolean = true
boo = fales

声明数字类型

let num: number = 1
num = 2

声明数组

//声明数字型数组
let numArr: number[] = [1,2,3,4]
//用泛型声明
let numArr: Array = [1,2,3,4]
//声明字符型数组
let strArr: string[] = ['1','2','3']
//用泛型声明
let serArr: Array = ['1','2','3']

元组

//元组类型允许表示一个已知元素数量和类型的数组
let arr :[number, string]
arr = [18,'wudafei'] //正确
arr = ['wudafei',18] //错误 元素类型顺序不一样,导致报错。
//向元组内push元素
arr.push('abc')
console.log(arr) //[18, 'wudafei', 'abc']
//联合类型
let arr: = [12,'abc',{},12,'abc',{}] //里面可以包含多个这种类型的值

枚举

//enum类型是对JavaScript标准数据类型的一个补充。
enum className = {one, tow, three, four}
let xiaomin = className.one
console.log(xiaoming) // 0 得到的是className的索引。
xiaoming = className[0] // enum 下标默认从0开始
console.log(xiaoming) // one 通过下标找到对应的值
//也可以给enum 里面的值设置索引
enum classTag = {one = 1, tow, three}
console.log(classTag) // {'1':one,'2':tow,'3':three} 下标就从1开始

any

//不清楚类型的变量指定的类型,这时候就可以使用any,any表示任意类型。
let anyValue: any = 'any' // 这个可以赋任意类型的值
anyValue = 14
anyValue = true
// 同样可以定义到数组上
let anyArr: any[] = [1,'2',true]

void

//void和any类型刚好相反,不表示任何类型,当一个函数没有返回值时,通常用void表示
function fn(): void {
console.log("函数没有返回值")
}
// 单独声明void类型的变量没有太大的意义,因为void只能赋值undefined和null
let voidValue: void = undefined
voidValue = null

null 和 undefined

// null和undefined类型的值就是它们本身
let nullValue: null = null //赋其他值就会报错
let undefinedValue: undefined = undefined //赋其他值就会报错
//null和undefined是其它任意类型的子类,也就是说可以将它赋值给任意类型
let numValue: number = undefined
numValue = null

never

//never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;
function fn(message: string): never {
throw new Error(message)
}
// 类型推断出返回值为never类型
function fn() {
return error('sometion failed')
}
// 返回never的函数必须存在无法达到的终点
function fn(): never {
while(true) {
......
}
}

object

//object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。
let obj: object = {} //ok
obj = [] //ok
obj = 18 //error
obj = 'wudafei' //error

类型推断

// 当一个变量ts语法识别有多种类型时,这个时候就需要我们来告诉TS,这个是什么类型。
//类型推断有两种方法 1.<>法, 2.as 方法
//<>法
let strValue: any = 'this is string'
let valueLength = (strValue).length
//as法
let strValue: any = 'this is string'
let valueLength = (strValue as string).length

你可能感兴趣的:(TypeScript基础类型)