基本类型
基本类型
声明变量
类型书写时必须是小写
1 | let num: number = 0; |
声明一个 number 类型的数据 num
num 就只能赋值 number 类型的数值,否则就会报错
1 | let num = 0; |
TS 会自动将变量声明成第一次赋值数据的类型
函数声明
1 | function sum(a: number,b: number): number{ |
在调用方法时
传入的参数必须是 number 类型的,返回值数据的类型也必须是 number 类型的
且参数个数必须是两个,否则会报错
联合类型
1 | let sex: number | string | boolean; |
sex 变量可以接收 number、string、boolean 三种类型的数据
1 | let sex: "male" | "female"; |
sex 变量只能设置成 male 或 female 这两个值
数据类型
any
any 表示任意数据类型,相对于 TS 放弃了对 data 变量的数据检测,最好不用
1 | let data: any; |
1 | let data; |
只声明变量不指定变量类型和赋值,TS 默认将 data 设置成 any
unknown
可以用来代替 any 实现指定变量任意类型的功能
1 | let data: unknown; |
unknown 是未知类型,相对于 data 也可以设置任意类型的数据类型
data 但不能直接赋值给其他变量
1 | let data:unknown; |
需要判断数据类型才能进行赋值
类型断言
告诉解析器变量的实际类型
1 | let data:unknown; |
1 | str = <string>data |
和上面的写法效果是相同的
void
空
常用于指定函数返回值类型
当函数没有返回值时,就可以给函数设置 void
1 | function fn(): void{ |
nerve
没有值
1 | function fn(): nerve{ |
常用于程序报错
object
不实用,万物皆对象
1 | let obj: object; |
1 | let user: {name: string, age?: number}; |
这种写法相对于来说更加的常用
用来指定对象中可以包含那些属性,不能多也不能少
在属性后面加上 ‘?’,使这个属性变为可选项,不写也不会报错
1 | let user: {name: string, [porpName: string]: any}; |
表示 user 对象除了 name 属性外,可设置任意数量的属性,并且属性值不做限制[porpName: string]
表示用数组来接收属性,数组没有做限制,所以属性个数也没有限制
any 表示属性值,any 类型,属性值自然没有做限制
1 | let fn: (a:number, b:number) => number; |
表示 fn 是一个函数,并且有两个参数,两个参数都是 number 类型的
函数的返回值也是 number 类型的数据
array
数组
1 | let arr: string[]; |
表示 arr 是一个字符串数组;数组中的数据必须全都是 string 类型的
1 | let arr: Array<string>; |
效果和上面的写法是一致的
tuple
元组,固定长度的数组,效率大于数组
1 | let tp: [string, number]; |
tp 元组只能接收两个数据,第一个是 string 类型,第二个是 number 类型
需要多少个数据,设置多少个数据
元组的数据一般不多,不然可以直接用数组了
enum
枚举
1 | /* 定义枚举 */ |
枚举就是将全部的可能性保存起来
实质上,Female 是 0,Male 是 1,枚举自动将这些数据转成数字
1 | enum Gender { |
枚举中的数据对应的数字也可以自定义
类型别名
将一种类型用一个名称来代替
1 | type myType = string | number; |
-
感谢你赐予我前进的力量