Я хотел бы спросить, почему компилятор не позволяет мне использовать функцию обратного вызова для forEach
, хотя, насколько я знаю, "a" | "b" | "c" | "d"
является подтипом string
. Пожалуйста, проверьте сообщение об ошибке после блока кода. Я думаю, я мог бы решить эту проблему с типом Record
, правильно? Спасибо!
const obj = { a: 10, b: 20, c: 30, d: 40 }
type O = typeof obj
Object.keys(obj).forEach((value: keyof O) => {
console.log(value)
})
ошибка TS2345: Аргумент типа '(значение: "a" | "b" | "c" | "d") => void' нельзя назначить параметр типа '(значение: строка, индекс: число, массив: строка []) => void'.
Типы параметров "значение" и "значение" несовместимы.
Тип "строка" не может быть назначен набрать "а" | "б" | "c" | "d" '.