unknown类型
unknow类型只能被赋值给any类型和unknow类型本身
联合类型
let value : string | number
联合类型使用|分隔每个类型
数组
let arr:number[]=[1,2,3]
数组泛型
let arr : Array<number> = [1,2,3]
函数声明
function sum(x:number,y:number):number{
return x+y
}
函数表达式
let sum :(x:number,y:number)=>number = function(x:number,y:number):number{
return x+y
}
在typescript类型定义中 => 用来表示函数的定义,左边表示输入类型需用()括起来,右边是输出类型
类型断言
interface ICat{
name:string;
run():void;
}
interface IFish{
name:string;
swim():void;
}
function swim(animal : ICat | IFish):void{
(animal as IFish).swim()
}
ECMA内置对象
Boolean,Error,Date,RegExp
Dom和Bom的内置对象
Document ,HTMLElement, Event, NodeList
字符串字面量类型
type IName = 'a' | 'b' | 'c'
function handleEvent(val:IName ){
}
handleEvent('a')
元组(Tuple)
元组合并了不同类型的对象
let tom :[number,string] = [25, 'dododo']
枚举(Enum)
枚举类型用于取值被限定在一定范围内的场景
enum Days{sunday,monday,tue,wes,thu,fri,sat}
Days["sunday"]
泛型(Generics)
泛型是指在定义函数,接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性
function createArr <T> (len:number,value:T): Array<T>{
let result : T[] = []
for(i=0;i<len;i++){
result[i] = value
}
return result
}
createArr<string>(3,'x')