У меня есть объектный литерал, такой как следующий (все свойства известны во время компиляции):
const foo = {
"hello": "hola"
};
Если foo
был интерфейсом, а не переменной, я мог бы легко сделать что-то вроде
/** THEORETICAL ONLY - Does not compile! */
function translate(input: keyof foo): string {
return foo[input];
}
Однако делать это с переменной не работает, поскольку компилятор не может найти интерфейс с именем foo
.
Поддерживает ли keyof
операции над объектными литералами, значения которых известны во время компиляции?