Я хочу использовать словарь или структуру карты в TypeScript, чтобы иметь возможность перебирать коллекцию, а также иметь прямой доступ myMap['key']
.
Сейчас я использую lodash
интерфейс Map<K, V>
.Пока я использую интерфейс только для параметров функции, он работает нормально.Инициализация этой карты из JavaScript также не является проблемой.Но я не знаю, как инициализировать эту структуру данных в TypeScript.
Что у меня есть:
TypeScript Lib
static async showAjaxModal(modalId: string, url: string, method: string, body?: string, actions?: Map<string, (e) => {}>) {
...
// Bind events
if (actions) {
_.forEach(actions, (value: (e) => {}, key: string) => {
$(`#${modalId}`).on('click', `#${key}`, value);
});
}
...
}
Вызов JavaScript:
eMedia.Modal.showAjaxModal(
'demo-modal-ajax',
'/modaldemo',
'get',
null,
{
['buttonOkId']: e => { alert('ok'); },
['buttonCancelId']: e => { alert('close');
}
});
В TypeScript у меня есть две константы const defaultOkButtonId = 'buttonOkId'
и const defaultCancelButtonId = 'buttonCancelId'
.Как я могу построить вышеупомянутую структуру данных в TypeScript, используя константы в качестве имени ключа?
Я думаю, решение очень простое, но я застрял.