ts 就是对变量进行一个类型的限制;
① type 与interface ;
type 是类型别名;interface 是接口; type 可以给任意数据指定类型; interface 只能给对象;
但是interface可以继承接口; type 不能继承;
继承的关键词 使用 extends
② 字面量类型;
所以字面量类型就是指定具体的 值,而不在是类型了; 例如 key:‘up’ ; 也就是说这里的值必须是up才行;
③ 泛型工具;
1.partial 工具;
该工具的作用就是将所有的类型都变成可选值
使用关键词 paritial<接口名> 返回的值就是将所有的类型都变成可选的类型;
2.readonly 工具;
该工具的作用就是将所有的类型都变成只读;
使用关键词 readonly<接口名> 返回值就是将所有的类型都变成只读;
3.pick 工具;
该工具的作用就是将一个接口中的某些类型提取出来;
使用关键词 pick<接口名,'类型名'| '类型名' 等等;
4.record
作用:构造一个对象类型,属性键为keys,属性类型为type;
使用关键词record<'key'| 'key',type>
④ 索引签名类型;
interface abc {nn:string:number} nn只是一个占位符;可以是任意的值;
该方法的主要作用是, 当我们不知道属性名是什么的时候,我们可以自定义一个属性名在这里.
2.keyof
该方法的作用就是把一个接口中的属性名拿到然后进行类型限制;
type props = {
a: number
b: string
c: boolean
};
type c = { [key in keyof props]: number };
// 相当于;
// type c = {
// a: number
// b: string
// c: boolean
// }
3. key in 类型名:类型;
该方式主要给 字符串+ 联合类型使用 'x' | 'y' | 'z'