先发个网站,里面有很多基础知识:docs.huruqing.cn/%E7%AC%AC05…
布尔值
let isDone:boolean =false
数字
let age:number = 22
字符串
let name:string ='yoga'
数组
let list:number[] =[1,2,3]
第二种方式可以利用泛型定义数组:
let list Array<number> = [1,2,3]
元组
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let x:[number,string]=[5,'yoga']
枚举
需要定义一组相同主题的常量数据时,应该立即想到枚举类型 功能相当于字面量类型和联合类型
enum Direction { Up, Down, Left, Right }
enum Months { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }
enum Size { big = '大', medium = '中', small = '小' }
enum Agency { province = 1, city = 2, district = 3 }
代码解释:
代码中通过枚举类型分别声明了:不同的 方向,一年内不同的 月份,一个商品的不同 尺寸属性,经销商的不同 级别,这样的一组常量数据,是在一个相同主题下的不同表示。
声明一个枚举类型,如果没有赋值,它们的值默认为数字类型且从 0 开始累加,可以给它自定义赋值,可以是字符串或者数值
Any
任何类型的值都可以赋值给 any , any 也可以赋值给任意类型,因此,any 类型通常也被称为 top type
void
某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void
声明一个void类型的变量没有什么大用,因为你只能为它赋予undefined和null
Undefined Null
undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大
默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。
Never
never类型表示的是那些永不存在的值的类型
联合类型
let arr:(number|string)[] = [1,'yoga']
代表数组中可以是number类型或者string类型
类型别名
当一个类型被多次使用时,可以通过类型别名,简化该类型的使用
type Typearr = (number | string) []
let arr:Typearr = [1,2,'yoga']
函数类型
函数声明方式:
function add(num1:number,num2:number):number{
return num1 + num2
}
函数表达式:
const add = (num1:number,num2:number):number =>{
return num1 + num 2
}
const add:(num1:number,num2?:number) =>number = (num1,num2)=>{
return num1 + num 2
}
可选参数?,不是必传的,可选参数后面不能有必选参数,可选参数只能出现在最后面。
对象类型
let person:{name:string;age:number;sayHi(name:string):string} = {
name:'yoga',
age:20,
sayHi(name){}
}
类型推论
let age = 18 自动推论age是number类型
声明变量立即初始化的情况下可以推论出来。
函数返回值也是可以推论出来的。
类型断言
TypeScrip的类型系统很强大,但是有时它是不如我们更了解一个值的类型。这时,我们更希望它不要帮我们进行类型检查,而是让我们自己来判断,则就用到了类型断言。
使用类型断言可以手动指定一个值的类型。类型断言像是一种类型转换,它把某个值强行指定为特定类型。
它有两种写法,一种是<type>value,一种是value as type
字面量类型
const name:'yoga' = 'yoga'
let age:18 = 18
字面量类型更精确,严谨 一般配合联合类型使用
typeof
类型查询,可以获取类型上下文引用变量或者属性的类型
let p = {x:1, y:2}
function add(point:{x:number,y:number}){}
function add(point:typeof p ){}
根据已有的值,简化类型的值 typeof不能查询函数调用的,只能用对象和对象属性的值