目录
1 索引签名类型
1.1 对象
1.2 数组
2 映射类型
2.1 映射联合类型
2.2 映射类型无法在接口中使用
2.3 映射对象类型
2.4 泛型工具类型都是基于映射类型实现的
3 索引查询类型
3.1 基本使用
3.2 索引查询多个相当于联合类型
1 索引签名类型
1.1 对象
我们现在想定义一个对象,规则是键名无所谓,所有的键值必须为number。这个时候我们可以用到索引签名类型
我们可以看到名称你随便取,但是值必须我数字。
由于在对象中键必须是字符串,所以规则中的string可以理解为定死的。由于something这里的变量名可以随便取,所以你也可以理解为定死的。也就是规则中冒号前面的东西都是定死的,你改后面的number就行了
1.2 数组
我们现在想定义一个数组,内容必须为字符串,我们通常会这样写
我们也可以利用所i你签名类型这样写
2 映射类型
2.1 映射联合类型
我现在要创建一个对象,需要包含x,y,z属性,且这三个属性都是number属性,这个时候我们可以这样写
也可以用映射类型来写
2.2 映射类型无法在接口中使用
2.3 映射对象类型
我们可以通过keyof只取他们的键
2.4 泛型工具类型都是基于映射类型实现的
比如Partial
再比如Readonly
上面是我自己写的,我们可以看一下源码
3 索引查询类型
3.1 基本使用
我现在有一个对象,对象里有a,b,c三个属性,属性值依次约束为 数字,字符串,布尔。我现在新建一个约束something1,让something1的类型与something中a的属性 类型相同
3.2 索引查询多个相当于联合类型
比如说我约束somehting1的类型为 数字或字符串
如果你用 keyof 就相当于把三个属性都遍历了,也就是something1的类型被约束为 数字或字符串或布尔