handlebars.js - TypeScript 定义函数的哈希表

标签 handlebars.js typescript

我正在尝试为 Handlebars 创建一个定义文件,以便与预编译的 handlebar 脚本一起使用。 Handlebars 会将预编译的脚本放入一个字符串索引的哈希函数表中,但我无法弄清楚或找到它是如何定义的。

一个假设的定义是:

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 只是决定数组中的函数是任何

最佳答案

您要使用的是具有索引签名的对象类型(请参阅规范第 3.5.3 节,特别是 3.5.3.3)。

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

关于handlebars.js - TypeScript 定义函数的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846533/

相关文章:

javascript - Facebook OG 没有获取 Nodejs - Handlebars 数据?

meteor - 在 meteor 模板中显示用户参数

sql-server - 从 sql 查询制作 json

javascript - Angular 7 调用 ngOnInit 方法或组件包含的任何其他组件方法

javascript - 来自具有父关系的单个项目数组的 Ractive.js 嵌套列表

javascript - 具有异步数据的 handlebar.js 助手

javascript - backbone.js路由问题

javascript - 如何设置 ' '内的值

jquery - 如何在 typescript 中创建无效的 JQueryPromise?

angular - 如何以编程方式触发 optionSelected Angular Material 自动完成?