Машинопись Определение хэш-таблицу функций

голоса
8

Я пытаюсь создать файл описания для рулей, для использования с предварительно скомпилированными скриптами руля. Рули поместит скомпилированные скрипты в строку индексированный хэш-таблицу функций, но я не могу понять, или найти, как это будет определено.

Гипотетическое определение было бы:

declare module Handlebars {
    export var templates: { (model:any) => string; }[index: string];
}

но это не является допустимым определение. Определение должно работать для вызова, как это:

var myHtml = Handlebars.templates[person-template]({FNmae: Eric});

Определение , как это близко :

export var templates: { (model:any) => string; }[];

Но это массив с числовым индексом, и это не то же самое, и VS Intellisense просто решает , что функции в массиве любые .

Задан 11/10/2012 в 19:52
источник пользователем
На других языках...                            


1 ответов

голоса
12

То, что вы хотите использовать тип объекта с индексом подписи (см спецификации в разделе 3.5.3, в частности, 3.5.3.3).

declare module Handlebars {
    export var templates: {
        [s: string]: (model: any) => string;
    }
}
Ответил 11/10/2012 в 19:57
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more