类型注解
let age: number=18
说明:代码中的:number就是类型注解
作用:为变量添加类型约束。比如,上述代码中,约定变量age的类型为number(数值类型)
解释:约定了什么类型,就只能给变量赋值该类型的值,否则就会报错
常用基础类型概述
可以将TS中的常用基础类型细分为两类:
1.JS已有型
(1)原始类型:number、string、boolean、null、undefined、symbol
(2)对象类型:object(包括数组、对象、函数等对象)
2.TS新增类型
(1)联合类型、自定义类型(类型别名)、接口、元组、字面量类型、枚举、void、any等
原始类型
特点:简单。这些类型,完全按照JS中类型的名称来书写
let age: number=18
let age: string='18'
let isTrue: boolean=false
对象类型
特点:对象类型,在TS中更加细化,每个具体的对象都有自己的类型语法
1.数组类型的两种写法:(推荐使用number[]写法)
let number: number[]=[1,3,5]
let string: Array<string>=['a','b','c']
2.联合类型
需求:数组中既有number类型,又有string类型,这个数组的类型应该如何写?
let arr:(number |string)[]=[1,'a',2,'b',3]
解释:|(竖线)在TS中叫做联合类型(由两个或多个其它类型组成的类型,表示可以是这些类型中的任意一种)。
注意:这是TS中联合类型的语法,只有一根竖线,不要与Js中的或(||)混淆了
3.类型别名
类型别名(自定义类型):为任意类型起别名。
使用场景:当同一类型(复杂)被多次使用时,可以通过类型别名,简化该类型的使用。
type CustomArray=(number | string)[]
let arr1:CustomArray=[1,'a',2,'b',3]
let arr2:CustomArray=[5,'c',6]
解释:
1.使用type关键字来创建类型别名
2.类型别名(比如,此处的CustomArray),可以是任意合法的变量名称
3.创建类型别名后,直接使用该类型别名作为变量的类型注解即可
4.函数类型
函数得到类型实际上指的是:函数参数和返回值的类型。
为函数指定类型的两种方式:
1.单独指定参数、返回值的类型:
function add(num1: number,num2: number):number{
return num1+num2
}
const add =(num1: number,num2: number):number=>{
return num1+num2
}
2.同时指定参数、返回值的类型:
const add: (num1: number,num2: number)=>number=(num1,num2)=>{
return num1+num2
}
解释:当函数作为表达式时,可以通过类似箭头函数形式的语法来为函数添加类型
注意:这种形式只适用于函数表达式
5.void类型
如果函数没有返回值,那么,函数返回值类型为:void
function greet(name:string): void{
console.log('Hello',name)
}