学习呦
索引签名+index+signature
索引签名,可以用在“对象”“函数签名”等需要索引的地方
解决的问题就是:只知道具体的对象和具体对象的值,但是不知道键
下面简单的例子
interface Dict{ |
上面定义了一个Dict字典,键不知道,但是知道它 (键) 的类型string和number
中间定义了一个函数,接收一个Dict类型的字典。注意,这个字典的键是不清楚的,这正是索引签名的作用
下面的d是一个对象,里面有两对键值对
PS. 索引签名的key类型如果是number那么就只能用number类型的数据作为key,但如果是string就可以用number或者string的类型作为key
type Mapish = { [k: string]: boolean }; |
索引签名支持的类型有:stringnumbersymbol
工具类型 Record<Keys, Type>
这是ts中内定的一个工具类型(utility type)也可以实现类似索引签名的作用,但不受到索引签名key类型的限制,比如下面的例子中使用了字面量类型作为key
interface CatInfo { |