У меня примерно так:
const fn1 = (param1: string, param2: string, param3: string): Promise<void> => {return new Promise()}
const fn2 = (param1: string, param2: string): void => {return}
const options = {
option1: fn1,
option2: fn2,
option3: fn1,
option4: fn2,
}
const myOption = 'option1';
const myParam1 = 'a';
const myParam2 = 'b';
const myParam3 = 'c';
options[myOption](myParam1, myParam2, myParam3); // ERROR in this line
Сначала я сделал это с Javascript, но потом мне пришлось преобразовать его в TS. Линтер не обнаруживает никаких проблем, но когда я пытаюсь запустить его с ts-node, он показывает следующую ошибку:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type...[the type object here]
Как я могу ввести объект, чтобы иметь возможность вызывать функции внутри, избегая использовать переключатель / case или бесконечное else / if?