TypeScript使用HashMap
我不知道大家是怎么使用索引类型的,我是一次想实现HashMap时接触到了索引类型。
索引类型大约是这样的:1
2
3{
[idx: string|number]:any
}
方括号里面是索引的类型,类似于hashmap里面的key,支持两种索引签名:字符串和数字。 可以同时使用两种类型的索引,但是数字索引的返回值必须是字符串索引返回值类型的子类型。 这是因为当使用 number来索引时,JavaScript会将它转换成string然后再去索引对象。 也就是说用 100(一个number)去索引等同于使用”100”(一个string)去索引,因此两者需要保持一致。
右边的类型签名,类似于hashmap里面的value。
例如:1
2
3
4
5var userInfo: {[index:string]: string} = {}
userInfo["name"] = "typescript"
userInfo["age"] = "14"
console.log("user name is ", userInfo["name"])
console.log("user age is ", userInfo["age"])
更多内容,欢迎加入Chat:http://gitbook.cn/gitchat/activity/5a6043750b6ffc7ace5faf48