TypeScript类型学习记录(二)

112 阅读2分钟

TspeScript是JavaScript的超集

image.png

JavaScript的所有类型在TypeScript中全部存在,我们先来看它们共有的类型。
  1. Number:数字类型,在JavaScript和TypeScript中不区分浮点数和整数,统称为number类型。
let num: number = 1
  1. Boolean:布尔类型,分为true和false。
let flag: boolean = true
  1. String:字符串类型,用双引号或单引号表示。包含在ES6中的模板字符串拼接变量和字符串。
let message: string = 'hello typescript'
  1. Array:数组类型,
const names1: string[] = ['xiao', 'yan', 'tong', 'xue']
const names2: Array<string> = ['xiao', 'yan', 'tong', 'xue']
  1. Object:对象类型,在TypeScript中,从myInfo中既不能获取数据,也不能设置数据。
const myInfo: object = {
  name: 'xiaoyantongxue',
  age: 18height: 1.80
}
const names2: Array<string> = ['xiao', 'yan', 'tong', 'xue']
  1. null和undefined:null和undefined是两个基本数据类型,在TypeScript中,它们既是实际的值,也是自己的类型。
let a: null = null
let b: undefined = undefined
  1. Symbol:在es5中,是不可以在对象中添加相同的属性名称的,但通过symbol可以定义相同的属性名称,例如:
const s1: symbol = Symbol('title')
const s2: symbol = Symbol('title')
const person = {
  [s1]: '程序员',
  [s2]: '老师'
}
TypeScript特有的类型
  1. any:当无法确定一个变量的类型时,并且它可能会发生一些变化,可以使用any类型,any类型的特点就是可以给any类型的变量赋任何值。请叫我 AnyScript!(开个玩笑~)
let a: any = 'hello'
a = 123
a = true
  1. unknown:是typescript中比较特殊的类型,描述不确定的变量。
  2. void: void通常是用来指定一个函数是没有返回值的,那么它的返回值就是void类型。我们可以将null和undefined赋值给void类型,也就是说函数可以返回null和undefined。
  3. never: 表示永远不会发生的值的类型。如代码所示,假如这是一个公共方法,当别人需要用到这个方法时,参数如果是Boolean类型,并且他在联合类型里面加上Boolean类型,没有在方法内判断,那么这段代码就存在一定的漏洞,但如果加上了never类型,那么这段有漏洞的代码在编译阶段就会报错。
function handleMessage(message: number | string) {
  switch (typeof message) {
    case 'string':
      console.log('string')
      break
    case 'number':
      console.log('number')
      break
    default:
      const check: never = message
  }
}

5.Tuples: 元组类型,他与数组的区别在于,数组通常用于存放相同类型的元素,不同类型的元素是不推荐存在数组中的。元组中每个类型都有自己特性的类型,根据索引值取到的值可以确定对应的类型。

const tInfo: [string, number, boolean] = ['xiaoyantongxue', 18, true]