EFV*_*ent 8 handlebars.js typescript
我正在尝试为Handlebars创建一个定义文件,以便与预编译的Handlebar脚本一起使用.Handlebars会将预编译的脚本放入函数的字符串索引哈希表中,但我无法弄清楚或找到如何定义它.
一个假设的定义是:
declare module Handlebars {
export var templates: { (model:any) => string; }[index: string];
}
Run Code Online (Sandbox Code Playgroud)
但这不是一个有效的定义.该定义应该适用于这样的调用:
var myHtml = Handlebars.templates["person-template"]({FNmae: "Eric"});
Run Code Online (Sandbox Code Playgroud)
这样的定义很接近:
export var templates: { (model:any) => string; }[];
Run Code Online (Sandbox Code Playgroud)
但这是一个带有数字索引的数组,并且它不是一回事,而VS Intellisense只是决定数组中的函数是否为任何数组.
小智 12
您要使用的是具有索引签名的对象类型(请参阅规范部分3.5.3,特别是3.5.3.3).
declare module Handlebars {
export var templates: {
[s: string]: (model: any) => string;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3639 次 |
| 最近记录: |