Причина описана в тексте ошибки. Вам необходимо использовать кортеж.
class Flintstone {
say() {
console.log(` Yabba-Dabba Do`);
}
}
let fred = new Flintstone();
let list =['say'] as const;
fred[list[0]];
Тоже самое можно сделать с помощью
enum
или
const enum
class Flintstone {
say() {
console.log(` Yabba-Dabba Do`);
}
go() {
}
}
let fred = new Flintstone();
const enum FlintstoneMethod {
Say = `say`
}
let keys: FlintstoneMethod[] = [FlintstoneMethod.Say];
fred[keys[0]]();
Кроме того получение ключей членов класса можно автоматизировать. Но это уже в тех случах когда вы сами понимаете для чего и когда это нужно.