私は、他の多くの可能なクラスのコンポーネントを使用して構築された動的クラスを作成しようとしています。TypeScript動的クラス - 結合/削除
私はES6 Object.assign()を使用してそれらを追加および削除しようとしていますが、コピーする変数を取得できますが、コピーするメソッドを取得できないようです。ここで
は私がやろうとしているものの例である:
class foo {
salad: string = 'salad';
chop(){
console.log('Chop');
}
}
class man {
nuts: string = 'nuts';
kick(){
console.log('Kick')
}
}
class choo {
add(){
var f: foo = new foo();
var m: man = new man();
//Copy variables
Object.assign(this, f, m);
//Copy methods
//Object.assign(this.prototype, f, m);
}
remove(){
d = Object.getPrototypeOf(foo);
for (key in d){
delete this[key]
}
}
}
var karate = new choo();
karate.add();
//karate.chop();
console.log(karate.salad);
//karate.kick();
console.log(karate.nuts);
私はhttp://fiddlesalad.com/typescript/上で共有するために例を取得しようとしましたが、それは保存しないでしょう。機能していないコードはコメントアウトされています。
Object.assign(this.prototype、obj1)は、あるクラスから別のクラスにプロトタイプ関数をコピーするためにES6が推奨するものですが、TypeScriptはそれを好まないようです。
アイデア?
これはマルチ継承を試みているようです。私はまずそれを調べます。注:Typescriptはそれを理解できないので、私は動的な多重継承を提案しません。また、実際に生成されたjsを見て、 'Object.assign'がなぜ機能していないのかを確認することをお勧めします。 – RainingChain