TypeScript 不是「强类型」,是「静态类型检查」的「弱类型」。
ts的数据类型:
布尔类型 boolean
数字类型 number
字符串类型 string
数组类型 array
元组类型 tuple
枚举类型 enum
任意类型 any
null
undefined
void
never
ts在定义变量的时候必须指定类型
boolean类型 true/false
let flag:boolean = true //flag只能是boolean类型,更改为其他类型会报错
number类型
let num:number = 2
String类型 number
let str:string = 'hello,world'
Array类型
两种方式:
let arr:number[] = [1,2,3] //数组里的元素都是number类型
2.泛型
let arr:Array<number> = [1,2,3]
同理其他都行
Tuple类型 元组
是Array的一种,可以在同一个数组里指定多个类型的元素
let arr:[string,number,boolean] = ['hello',1,true]
注意:必须按顺序写,也不能缺少
enum 枚举类型
enum Flag{
success = '200', error = '500'
}
let f:Flag = Flag.success
console.log(Flag.error) //'500'
主要用于标识状态或者固定值
enum Color {red,white=4,orange}
let c:Color = Color.red
console.log(c) //0
let white = Color.white //4
console.log(Color.orange) //5
如果不赋值,那就默认打印出索引(index),如果中途有人被赋值了,那下一个就跟着上一个+1
enum Color {red,white='#fff',orange}
let c:Color = Color.red
会报错:说让你给orange设置一个初始值。
报错信息
enum Color {red,white='#fff',orange="#f00"}
let c:Color = Color.red
这样就可以了,不过,最好不要
任意类型 any
上面说的各种类型,定义了类型之后再赋值成别的类型就会报错。
let any_num:any = 1
any_num = '123'
可以修改any_num的数据类型不会报错
null和undefined
let num:number; //console下num会报错
let num:undefined;
console.log(num) //undefined
let num:number | undefined
num //undefined
null同理
一个元素可能是number可能是null可能是undefined
其实直接any就可以
也可以
let a: number | null | undefined
viod
ts中的void表示没有任何类型,一般用于定义方法的时候方法没有返回值后
//es5
function fun(){}
fun();
//ts 中如果方法没有返回值,一般用以下写法,表示方法没有返回任何类型
function fun():void {}
fun();
//ts 如果方法有返回值
function fun():number{
return 1
}
fun();
never类型(基本不会用到)
never类型是其他类型(包括null和undefined)的子类型,代表从不会出现的值
let a:never;
a = 123 //报错
a = (()=>{
throw new Error('错误')
})()
网友评论