常用类型

307 阅读3分钟

先发个网站,里面有很多基础知识:docs.huruqing.cn/%E7%AC%AC05…

布尔值

let isDone:boolean =false

数字

let age:number = 22

字符串

let name:string ='yoga'

数组

let list:number[] =[1,2,3]

第二种方式可以利用泛型定义数组:

let list Array<number>  = [1,2,3]

元组

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

let x:[number,string]=[5,'yoga']

枚举

需要定义一组相同主题的常量数据时,应该立即想到枚举类型 功能相当于字面量类型和联合类型

enum Direction { Up, Down, Left, Right }
 
enum Months { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }
 
enum Size { big = '大', medium = '中', small = '小' }
 
enum Agency { province = 1, city = 2, district = 3 }

代码解释:

代码中通过枚举类型分别声明了:不同的 方向,一年内不同的 月份,一个商品的不同 尺寸属性,经销商的不同 级别,这样的一组常量数据,是在一个相同主题下的不同表示。

声明一个枚举类型,如果没有赋值,它们的值默认为数字类型且从 0 开始累加,可以给它自定义赋值,可以是字符串或者数值

Any

任何类型的值都可以赋值给 any , any 也可以赋值给任意类型,因此,any 类型通常也被称为 top type

void

某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void

声明一个void类型的变量没有什么大用,因为你只能为它赋予undefinednull

Undefined Null

undefinednull两者各自有自己的类型分别叫做undefinednull。 和 void相似,它们的本身的类型用处不是很大

默认情况下nullundefined是所有类型的子类型。 就是说你可以把 nullundefined赋值给number类型的变量。

Never

never类型表示的是那些永不存在的值的类型

联合类型

let arr:(number|string)[] = [1,'yoga']

代表数组中可以是number类型或者string类型

类型别名

当一个类型被多次使用时,可以通过类型别名,简化该类型的使用

type Typearr = (number | string) []

let arr:Typearr = [1,2,'yoga']

函数类型

函数声明方式:
function add(num1:number,num2:number):number{
      return num1 + num2
}

函数表达式:
const add = (num1:number,num2:number):number =>{
  return num1 + num 2
}
const add:(num1:number,num2?:number) =>number = (num1,num2)=>{
   return num1 + num 2
}

可选参数?,不是必传的,可选参数后面不能有必选参数,可选参数只能出现在最后面

对象类型

let person:{name:string;age:number;sayHi(name:string):string} = {
 name:'yoga',
 age:20,
 sayHi(name){}
}

类型推论

let age = 18 自动推论age是number类型

声明变量立即初始化的情况下可以推论出来。

函数返回值也是可以推论出来的。

类型断言

TypeScrip的类型系统很强大,但是有时它是不如我们更了解一个值的类型。这时,我们更希望它不要帮我们进行类型检查,而是让我们自己来判断,则就用到了类型断言。

使用类型断言可以手动指定一个值的类型。类型断言像是一种类型转换,它把某个值强行指定为特定类型。

它有两种写法,一种是<type>value,一种是value as type

字面量类型

const name:'yoga' = 'yoga'
let age:18 = 18

字面量类型更精确,严谨 一般配合联合类型使用

typeof

类型查询,可以获取类型上下文引用变量或者属性的类型

let p = {x:1, y:2}

function add(point:{x:number,y:number}){}
function add(point:typeof p ){}

根据已有的值,简化类型的值 typeof不能查询函数调用的,只能用对象和对象属性的值