TypeScript 笔记

121 阅读1分钟

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
    }