TypeScript
keyof
const cats = {
"Coding Cat": "https://media.giphy.com/media/JIX9t2j0ZTN9S/giphy.gif",
"Compiling Cat": "https://media.giphy.com/media/mlvseq9yvZhba/giphy.gif",
"Testing Cat": "https://media.giphy.com/media/3oriO0OEd9QIDdllqo/giphy.gif"
};
function f(a: keyof typeof cats) {
console.log(a);
}
// f("x"); // error
f("Coding Cat"); // ok
枚举中也能使用
报错:索引签名参数类型不能为联合类型。请考虑改用映射的对象类型
enum batchEventsEnum {
delete,
locking,
unlock
}
interface batchEvents {
##error [key:keyof typeof batchEventsEnum]:(key?:string)=>void,
}
修改成为
enum batchEventsEnum {
delete,
locking,
unlock
}
type batchEvents = {
[key in keyof typeof batchEventsEnum]: (key?: string) => void
}