TypeScriptでどうやって実現できますか?汎用引数として与えられたインタフェースを継承します
interface Clonable<TAttributes> extends TAttributes { // ERROR: TAttributes is not an interface
clone(): TAttributes
copyFrom(input: TAttributes)
}
function(x : Clonable<{title:string,url:string}>) {
alert(x.title) // ERROR: title is not an property of x
}
背景:TypeScript + Mithril + JSXを使用しようとしています。オートコンプリートでアトリビュートを公開するには、アトリビュートのタイプとともにアトリビュート「アトリビュート」が必要です。私のクラスには、 "this.attributes.title"よりも "this.title"を書く方が短いため、これらの属性を直接持たせたいと思っています。
ここにオプションがありますか?
それはあなたが求めているものは非常に明確ではありません。あなたはそれを実装する方法や「タイプする」方法について質問していますか? (または両方..)。この無名関数は何ですか?それは何をすべきか? –
このコードは無効です。 - 'インターフェイスはクラスまたは別のインターフェイスのみを拡張することがあります。' at ':' 1,41 ' - プロパティ' title 'は型に存在しません' Clonable <{title:string; url:文字列; }> '。' at: '7、13' これを実現する別の方法を探しています。 – FremyCompany
明らかに、あなたはこれまで何を持っていますか? 'clone'と' cloneFrom'は実装されていますか?どのようにこれを使用しますか?あなたが持っているものとそれでやりたいことをより良く説明してください。 –