怎么理解这段ts语法?
type option = {
[k: string]: string | object;
};
const typeMap: { [k: string]: string } = {
tostring: "string",
tonumber: "number",
};
特别是这个:[k: string]: string | object;
以及 const typeMap: { [k: string]: string }
这个 [k: string] 要怎么理解?
刚学ts,有点吃力,感觉语法太奇怪了。能不能帮我解释下这段代码的含义?感谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
就是索引签名。
意思就是虽然不知道
Foo
具体都有哪些字段,但知道一定可以通过一个 string 类型的 Key 去访问。那么Foo
这个类型就被称为“可索引类型”,[key: string]: any
就是“索引签名”。JS 里最常见的可索引类型就是数组
Array<T>
,它有两个索引签名:[key: number]: T
和[key: string]: T
,所以你才可以用arr[0]
或arr['0']
的方式去访问子元素。