これらのツールを一緒に使用しています。
- TypeScript
- ゴクゴク
- Gulp-Inject
私は次のことをしようとしています:
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
に置き換えます。これが、 extend : のようなメソッドが TypeScript によって理解されるよう{ gulp_inject: "x.html" }
にしたい理由です。IGulpInjectable
string
trim()
ただし、extends string
有効ではありません。どちらでもないextends String
。少なくとも、変更したくない現在のコンストラクター コードではそうではありません。
インターフェイスにすべてのメソッドがあることを TypeScript に伝えるにはどうすればよいstring
ですか?
脚注、私の現在の回避策:
getItem(key: string){
return (<any> this.items[key]).trim();
}
しかし、それでは満足のいくものではありません。