TypeScript的基础
类型
-
any 基本不用使用(关闭了ts的校验了)
-
在变量不赋值则声明的是any(隐式any) 赋值后声明的是值的类型
-
any类型可以赋值给任何类型
let a:any; a=10; let b:string; b=a; //此时赋值成功,所以any可以赋值给任何类型
-
-
unkown
- 自己可以赋任何值 但是不能赋值给其他类型
- 实际是类型安全的any(不能赋值给其他变量)
- 如何赋值
- 类型判断if(typeof e===“string”){ 此处进行赋值}
- 类型断言(s=e as string )
- s=<string>e;
-
void
- 函数没有返回值
- 可以return;(空 undefined)
-
never
- 永远没有返回结果(一般用于报错)
-
object
-
//只是指定对象 let b:object; //指定对象里面具体有什么(常用) let a:{name:string} //属性名后加问号 表示这个属性可选 但是如果有则用其类型 let c:{name?:string} c={}//没错 c={name:"张三"} c={name:123}//类型错误 //除了必有属性还有未知属性 let d:{name:string,[propName:string]:any}
-
-
function
-
//使用键头函数这个格式来设置结构的类型声明 let b:(a:number,b:string)=>number;
-
语法 let 函数名:(形参:类型)=>返回值类型;
-
-
array
- 字符串数组
let a:string[];//数组里面存的是string let b:array<string>;//第二种写法
- 对象数组
let obj:{name:string,age:number}; let arr:obj[];//数组里面存放的是对象 对象类型是obj的类型
-
元组(新增)
- 数组里面值是固定的
let tuple:[string,string];//有两个
-
枚举enum(新增)
enum Gender{
Male,
Female
}
let i:{name:string ,gender:Gender}
i={name:"张三",gender:1}
console.log(i.gender===Gender.Female)//ture
- &(两个都满足)
- |(满足其中一个)
- 类型的别名
type myType=string;
let a:myType;//a的类型为string
type typea=1|2|3|6;
let c:typea;//c的类型为typea
let b:typea;//c的类型为typea
泛型
- function fn<T>(a:T):T{ return a};
- fn(10)
- fn<string>(“hello”)