如何快速定义对象的key类型
假如有一个对象:
const student = {
name: 'Tom',
age:12
}
接着,定义一个useState控制获取对象的key
const [key, setKey] = useState("name")
然后,用这种方式读取属性值
const result = student[key]
会报错:在类型 "****" 上找不到具有类型为 "string" 的参数的索引签名。
可以这么解决:收窄key类型:
const [key, setKey] = useState<"name"|"age">("name")
但是,如果key很多呢? 其实可以通过泛型解决:
const [key, setKey] = useState<keyof typeof student>("name")