- 基本类型:string,number,boolean
- 数组类型:type[],Array<type>(泛型写法)
- any:不希望某个特定的值导致类型检查错误。尽量避免使用any。
- 对象类型:例如{x:number,y?:number}中间可以用逗号或者分号分割。问号表示可选。
- 联合类型:两个或多个类型组成的新类型。例如:number | undefined
- 类型别名:使用type来定义一个类型,例如:type Person = string
- 接口:一种结构类型,定义对象类型的另外一种方式。关于interface和type的区别,参考另外一篇文章。
- 关于any和unknown的区别:写any相当于没有类型检查,和写js一个样。unknown:也可把任何值赋给unknown,但是不能调用属性和方法。除非使用类型断言或者类型保护(typeof 判断)。
- 类型断言:有两种写法:① person as string ;②<string>person
- undefined和null:前者没有赋值,后者表示不存在。
- 非空类型断言操作符:!表示类型推断排除null和undefined,表示确定某个操作符是有值的,跳过ts在编译阶段对它的检测。
- 文字类型:相当于缩小类型范围。例如:'left' | 'right' | 'center'
function handleRequest(host:string,method:'GET'|'POST'){
}
const req={
host:'xxxx',
method:'GET'
} as const;
handleRequest(req.host,req.method);
//这里有三种写法:
1:method:'GET' as 'GET'
2:req.method as 'GET'
3:第三种如上图 使用 as const