Тип нельзя использовать в качестве типа индекса
на https://www.typescriptlang.org/play/index.html и вставить:
let userTypes = {};
let keys = Object.keys[userTypes];
появляется ошибка:
error TS2538: Type '{}' cannot be used as an index type.
почему?
1 ответов
Object.keys
возвращает массив свойств. Вы не можете индексировать массив с помощью объекта, вы должны использовать число, указывающее смещение от начала массива.
в качестве эквивалентного примера, что вы ожидаете от этого кода?:
var a = [1, 2, 3, 4]
console.log(a[{}]);
это бессмысленно.
изменить:
Прочитав комментарии ОП и снова просмотрев код, я понял, что моя оценка была неправильной. В то время как a проблема в том, что исходный код пытается индексировать keys
функция используя литерал объекта, реальная проблема заключается в использовании квадратных скобок вместо круглых скобок. Это сработает:
let keys = Object.keys(userTypes);
он называет keys
С userTypes
вместо индекса с ним.