Diğer birçok olası sınıfın bileşenleri kullanılarak oluşturulmuş dinamik bir sınıf oluşturmaya çalışıyorum.TypeScript dynamic class - birleştirme/kaldırma
ES6 Object.assign() kullanarak bunları eklemeye ve kaldırmaya çalışıyorum ve kopyalanacak değişkenleri alabiliyorum ancak kopyalanacak yöntemleri göremiyorum. İşte
ben yapmaya çalışıyorum şeyin bir örnektir: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);
Ben http://fiddlesalad.com/typescript/ paylaşmak için bir örnek almaya çalıştı ama tasarruf olmaz. Çalışmayan kod yorumlanmıştır.
Object.assign (this.prototype, obj1), prototip işlevlerini bir sınıftan diğerine kopyalamak için ES6'nın önerdiği şeydir, ancak TypeScript bunu beğenmedi.
Herhangi bir fikrin var mı?
Görünüşe göre, çoklu miras yapmaya çalışıyorsunuz. İlk önce ona bakardım. Not: Typescript'in anlayamayacağı gibi dinamik çok kalıtım önermem. Ayrıca, Object.assign'ın neden çalışmadığını görmek için oluşturulan asıl js'lere bakmanızı öneririm. – RainingChain