Strojopisem Definování hash tabulky funkcí

hlasů
8

Snažím se vytvořit soubor definic pro řídítka pro použití s ​​pre-sestavují řídítek skriptů. Řídítka bude klást předkompilované skripty do řetězce indexované tabulky hash funkcí, ale nemůžu přijít na to, nebo zjistit, jak by to bylo definováno.

Hypotetická definice by měla být:

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

ale to není platná definice. Definice by měla fungovat pro volání, jako je tento:

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

Definice, jako je to v blízkosti :

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

Ale to je pole s číselným indexem, a to není totéž, a VS Intellisense prostě rozhodne, že funkce v poli jsou jakákoliv .

Položena 11/10/2012 v 19:52
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
12

Co chcete použít, je typ objektu s podpisem indexu (viz spec kapitola 3.5.3, konkrétně 3.5.3.3).

declare module Handlebars {
    export var templates: {
        [s: string]: (model: any) => string;
    }
}
Odpovězeno 11/10/2012 v 19:57
zdroj uživatelem

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