Тип "(get: any) => { [k: string]: () => void; }" не может быть назначен для типа "Record<string, () => void>"
Я выполняю следующие преобразования:
sourceArray: {string: SomeObject}
-> [string, SomeObject][]
-> [string, () => void][]
-> {string: () => void}
примерно следующим образом:
// Из кода убраны лишние детали для облегчения понимания
let something: Record<string, () => void> =
Object.fromEntries(
Object.entries(sourceArray)
.filter(([name, someObject]) => true)
.map(([name, someObject]) => [someObject.name, () => openModal(someObject.data)]
)
Однако когда я присваиваю результат полю типа Record<string, () => void>
он мне пишет ошибку:
Тип "(get: any) => { [k: string]: () => void; }" не может быть назначен для типа "Record<string, () => void>".
В типе "(get: any) => { [k: string]: () => void; }" отсутствует сигнатура индекса для типа "string".
Почему я не могу преобразовать { [k: string]: () => void; }
в Record<string, () => void>
, и как мне сделать это?