Использование карты или словаря в TypeScript - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу использовать словарь или структуру карты в 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, используя константы в качестве имени ключа?

Я думаю, решение очень простое, но я застрял.

...