ts数据类型

2020-04-23  本文已影响0人  北冥有咸鱼_

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('错误')
})()
上一篇下一篇

猜你喜欢

热点阅读