TspeScript是JavaScript的超集
JavaScript的所有类型在TypeScript中全部存在,我们先来看它们共有的类型。
- Number:数字类型,在JavaScript和TypeScript中不区分浮点数和整数,统称为number类型。
let num: number = 1
- Boolean:布尔类型,分为true和false。
let flag: boolean = true
- String:字符串类型,用双引号或单引号表示。包含在ES6中的模板字符串拼接变量和字符串。
let message: string = 'hello typescript'
- Array:数组类型,
const names1: string[] = ['xiao', 'yan', 'tong', 'xue']
const names2: Array<string> = ['xiao', 'yan', 'tong', 'xue']
- Object:对象类型,在TypeScript中,从myInfo中既不能获取数据,也不能设置数据。
const myInfo: object = {
name: 'xiaoyantongxue',
age: 18,
height: 1.80
}
const names2: Array<string> = ['xiao', 'yan', 'tong', 'xue']
- null和undefined:null和undefined是两个基本数据类型,在TypeScript中,它们既是实际的值,也是自己的类型。
let a: null = null
let b: undefined = undefined
- Symbol:在es5中,是不可以在对象中添加相同的属性名称的,但通过symbol可以定义相同的属性名称,例如:
const s1: symbol = Symbol('title')
const s2: symbol = Symbol('title')
const person = {
[s1]: '程序员',
[s2]: '老师'
}
TypeScript特有的类型
- any:当无法确定一个变量的类型时,并且它可能会发生一些变化,可以使用any类型,any类型的特点就是可以给any类型的变量赋任何值。请叫我 AnyScript!(开个玩笑~)
let a: any = 'hello'
a = 123
a = true
- unknown:是typescript中比较特殊的类型,描述不确定的变量。
- void: void通常是用来指定一个函数是没有返回值的,那么它的返回值就是void类型。我们可以将null和undefined赋值给void类型,也就是说函数可以返回null和undefined。
- 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]