Mecanografiado Definición de una tabla de dispersión de funciones

votos
8

Estoy intentando crear un archivo de definición para manillares, para su uso con las secuencias de comandos precompilados manillar. Manillar pondrá guiones pre-compilados en una cadena indexada tabla hash de funciones, pero no puedo imaginar o encontrar cómo podría ser definido.

Una hipotética definición sería:

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

pero eso no es una definición válida. La definición debe trabajar para una llamada de la siguiente manera:

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

Una definición de este tipo es estrecha :

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

Pero eso es una matriz con un índice numérico, y no es la misma cosa, y VS Intellisense simplemente decide que las funciones de la matriz son cualquiera .

Publicado el 11/10/2012 a las 19:52
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
12

Lo que se quiere utilizar es un tipo de objeto con una firma de índice (véase la sección 3.5.3 de especificaciones, específicamente 3.5.3.3).

declare module Handlebars {
    export var templates: {
        [s: string]: (model: any) => string;
    }
}
Respondida el 11/10/2012 a las 19:57
fuente por usuario

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