我想在TypeScript中使用Dictionary或Map结构来遍历集合并直接访问myMap['key']
。
现在我正在使用lodash
接口Map<K, V>
。只要我仅将接口用于函数参数,它就可以正常工作。从JavaScript初始化此映射也不是问题。但是我不知道如何在TypeScript中初始化此数据结构。
我所拥有的:
TypeScript库
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中构造上述数据结构?
我想解决方案很明显,但是我被困住了。