TypeScript-数据类型

类型注释

变量后面带上相关的数据类型

const message: string = '我'

类型推导

即便不显示的声明变量的类型,当你赋予变量初始值时,ts也会给我们隐式的加上。

TypeScript中的数据类型

1.Number类型

let foo: number = 123
foo = 222

进制

  • 0b代表二进制
  • 0o代表八进制
  • 0x代表十六进制

2.Boolean类型

let foo: boolean = false
foo = true

3.String类型

let foo: string = 'hello ts'
foo = 'hello tss'

4.Array类型

数组里面需要声明里面存放的数据类型

// 字符串型数组
const strArr:string[] = []

5.Object类型

待补充…

6.null和undefined

const nu: null = null
const und: undefined = undefined

7.Symbol类型

待补充…

8.any类型

数据类型是任意的

let message: any = 1
message = '2'
message = {}

9.unknown类型

不确定变量的类型

function foo() {
  return 123
}
function bar() {
  return '123'
}
let result: unknown
let flag = true
if(flag) {
  result = foo()
} else {
  result = bar()
}

unknown和any的区别

any比较灵活,当一个函数期望你传入一个具体的类型时,你传any类型依旧是可以的,但是传unknown就是不行的了,unkonwn类型表示你不确定这个数据的类型,但是这个类型ts不希望你乱赋值给别的变量,但是any是可以的

10.void类型

11.never类型

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

作用:祖师爷的回复:
在这里插入图片描述

在这里插入图片描述

12.tuple(元祖类型)类型

在声明数组时给予数组中各个元素指定的类型,赋予初始值时需要指定长度,但后续可以pushpoppush也只能push之前声明的类型

const turple: [number, string] = [1, 'string'];
turple.pop()
console.log(turple);

13.函数类型

函数也是有类型的,个人理解:函数的类型就是你在定义你的函数的时候它的格式

// 期望num1是数字,num2是数字, 函数的返回值是number
// 实际开发中函数的返回类型可以不写,让其自己推导
function sum(num1: number, num2: number): number {
  return num1 + num2
}
sum(2,3)
// ----------------------------
type FunType = (num1: number, num2: number) => number
const add: FunType = (num1: number, num2: number) => num1 + num2
console.log(add(4, 3))

14.对象类型

function printPoint(point: { x: number, y: number }) {
  console.log(point)
  
}
printPoint({x: 1, y: 2})

若要属性可选,加个?就行

function printPoint(point: { x: number, y: number, z?: number }) {
  console.log(point)
  
}
printPoint({x: 1, y: 2})

15.联合类型

设定的变量可以有多个类型,但此时对于变量的操作要额外小心,因为你不知道你能拿到你设定的变量它是一个什么样类型的值

function printId(id: string | number) {
    console.log(id)
}

类型别名

使用type关键字给类型起别名

type Point = { x: number, y: number }
function printPoint(point: Point) {
  console.log(point);
}
printPoint({ x: 1, y: 2 })

16.字面量类型

字面量类型跟枚举类型有点像,一般跟联合类型结合使用

// aligin只能取'left' | 'center' | 'right'中的一个
type AlignMent = 'left' | 'center' | 'right'
let align: AlignMent = 'algin'

17. 枚举类型

枚举类只能在限定的几个key值取值,一般key值大写,枚举类型可读性强

enum Direction {
  Left,
  Right,
  Up,
  Down
}
function handleDirection(direction: Direction) {
  switch (direction) {
    case Direction.Left:
      console.log("Go left");
      break;
    case Direction.Right:
      console.log("Go right");
      break;
    case Direction.Up:
      console.log("Go up");
      break;
    case Direction.Down:
      console.log("Go down");
      break;
   default:
     const exhaustiveCheck: never = direction;
  }
}
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值