typescript新增类型 元组 - 字面量 - 枚举

59 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第27天,点击查看活动详情

4.元组类型

元组: 一种特殊的数组,它指定了元素的个数及对应的类型

//经纬度表示地址
  let position: number[] = [116.2317, 39.5427]
  //number[] :它只能表示一个数组,元素是number类型

  //需求: 一个数组,两个元素,第一个是数值,第二个也是数值
  //元组: 一种特殊的数组,它约定了元素的个数及对应的类型
  const c : [string,number] = ['小花',39.5427]

5.字面量类型

它一般和联合类型一起使用,表示多个固定的值,只能取一个

type Gender = '男' | '女'

let m : Gender = '男'

 let str1 = '你好啊'
  const str2 = '特殊的,不一样的'

  //1.str是啥类型? string类型,它一定,必须保存字符串类型
  //2.str2是   '特殊的,不一样' 就是字面量类型 ,
  //它一般是和联合类型一起使用,表示多个固定的值中取一个
  type Gender = '男' | '女'
  let man : Gender = '男'
  let women:Gender = "女"

6.枚举类型 enum

它的功能类似于 字面量类型 + 联合类型组合的功能

  //需求:定义一个变量,它的值只能是'up','down','left','right'中一个
  //定义枚举
  // enum Direction {'up'=100,'down','left','right'}
  // console.log(Direction.right); // ===> 103
  // enum Direction {'up'='up,'down'='down','left'='a','right'='b'}
  // console.log(Direction.right); // ===> b
  
  
  enum Direction {'up','down','left','right'}
  //使用枚举
  //枚举的名字.xxx
  let d2:Direction = Direction.up

  function f(d:Direction) {
    if(d === Direction.left){
      
    }
  }

  //1.ts中的类型声明语句转为js之后会丢弃
  //但是枚举不会
  //使用枚举之后,会导致代码的体积变大
  //2.这个类型有值
  // console.log() 可以正常输出枚举
  
  //场景:后端给我们的性别是 0(男),1(女)\
  //    写代码能看到有语义的字符串,而代码运行的结果有具体的值
  enum Gender {'man'=0,'woman'=1}
  let g1: Gender = Gender.man
  console.log(g1); // ===> 0