核心语法
基础类型
- TS中基础
type
有:string,number,boolean, null,undefined
枚举类型
- 可以使用关键字
enum
来声明一个枚举类型,这说明该类型变量只能使用已经枚举的值 - 可以使用
变量名.枚举值
或者变量名[枚举索引]
来访问枚举值
enum myEnum = { A,B,C}
const a = myEnum.A//a=A
const b = myEnum[1]//b=B
类型注解
变量
- 在变量后面使用
: type
来标识变量的类型 - type可以是TS中的基础类型,或者是一个具体的值
let t0 :number = 1
函数
- 可以在函数后面进行类型注解,这表明该函数将会返回值是该类型
- 在参数后面加
?
表示该参数可选,同时必选参数应放在可选参数左侧 - 可以使用展开运算符
...
来省略剩余参数
function MyFn(a: number, b?:string, ...rest: number[]) :number{
return a+100
}
数组与元组
- 可以使用
: type[]
或者: Array<type>
对数组进行类型注解,这会使得数组内只能存储该type的值 - 可以使用更为苛刻的元组来限制数组中的元素类型和个数,在类型后面使用
?
来表示该类型可选
let t1 :Array<number> = [1, 2, 3]
let t2 :[number, string, number?] = [1, 'a']
类型断言
- 在字段后面使用
as type
来断言该字段的类型
联合类型
- 可以使用
|
来联合类型
类型别名
- 可以使用关键字
type
来为类型取别名,常用于重复使用的联合类型
type MyUserName = string | number
let myName: MyUserName = Asta
接口
- 可以使用
interface
来声明一个接口,这个接口被视为一个自定义类型,可以在声明一个对象时进行注解
interface Obj {
name: string,
age: number
}
const obj: Obj = {
name: Asta,
age: 20
}
泛型
- 可以在函数名后面使用
<T>
来声明一个泛型,并可以在函数的参数以及返回值中使用该泛型 - 在使用该函数时,可以使用任意类型来替换
T
,以实现函数的灵活复用 - TS能够智能地进行 类型推断 ,凡是能够推断出来的,就可以省略
function MyFn<T>(a: T, b?:T, ...rest: T[]) :T{
return a+100
}
const res = MyFn<number>(30, 20)
const res = MyFn(30, 20)//泛型T为number能够推断
Last updated on