【发布时间】:2016-03-16 09:40:04
【问题描述】:
我正在同时使用这些工具:
- 打字稿
- 吞咽
- Gulp 注入
我正在尝试执行以下操作:
module My {
interface IGulpInjectable extends string { // << Problem here!
[gulp_inject: string] : string;
}
export class Cache {
private items: { [key: string] : IGulpInjectable };
constructor() {
this.items = {
"item1": { gulp_inject: "file1.html" },
"item2": { gulp_inject: "file2.html" }
}
}
getItem(key: string){
return this.items[key].trim();
}
}
}
gulp-inject 所做的是将{ gulp_inject: "x.html" } 替换为包含文件内容的字符串。这就是为什么我想要 IGulpInjectable 扩展 string: 以便 TypeScript 能够理解像 trim() 这样的方法。
但是,extends string 无效。 extends String 也不是。至少,不是我当前的构造函数代码,我不想更改它。
我如何告诉 TypeScript 我的界面具有 string 的所有方法?
脚注,我目前的解决方法:
getItem(key: string){
return (<any> this.items[key]).trim();
}
但这并不是很令人满意。
【问题讨论】:
标签: javascript typescript gulp gulp-inject