---恢复内容开始---
1.数据类型
ts为了使代码更加规范并利于维护,增加了类型校验
提供了以下几种类型
布尔类型 boolean
数字类型 number
字符串类型 string
数组类型 array
元组类型 tuple
枚举类型 enum
任意类型 any
null
undefined
void
never
2.
在js中,我们可以书写这样的代码:
var a = true a = '123' //改变变量类型
但是ts不允许这么修改数据类型,必须指定类型
var flag:boolean = true
其余同理。
3.定义数组
两种方式
1) 定义数组,为数组内的元素指定类型
var arr :number[] = [1,2,3,4]//指定为数字类型
2) 第二种方法
var arr2:Array<number> = [1,2,3]
4. 元组类型(tuple)
元组属于数组的一种
元组类型内的元素可以是不同类型的
必须为每个位置的元素指定类型
let arr4: [number, string] = [123, '123']
5.枚举类型(enum)
enum 枚举名{
标识符[= 整型常数],
...
}
enum Flag { success = 1, err = 2 }
//使用方法
let s:Flag = Flag.success
console.log(s)//1
//没有整型常数,则默认设置为从0开始
常用于表示状态码等用途
6.任意类型(any)
任意为某一个类型
let a:any = 123
a = '123'
任意类型类似于原js中的变量声明
当我们需要操作dom对象时,需要为其设置为any类型
7.null与undefined
是‘其他类型’(never)的子类型
上述情况如何处理呢?
var num:number | undefined
// 未赋值前为undefined
对于空类型null
空类型一旦被定义就只能为空,这种情况下
可以声明
var num:number | null | undefined
// 某一变量可能有3种状态
8.void类型
ts中的void 表示没有任何类型,通常用于定义方法的时候方法没有返回值
// 方法没有返回值 function run(): void { console.log('run') }
如果方法有返回值,那么理应返回什么类型就在冒号后写什么类型
9、never类型
表示其他类型,包含null,undefined。意思是从不会出现的值
这意味着声明never类型的变量只能被never类型的值所赋值
var b: never b = 123 //报错
var b: never b = (() => { throw new Error('wrong') })()