2016-10-31 3 views

答えて

4

あなたは右のクラスのコンストラクタを返すためにジェネリックを使用することができます。

const mixin = (traits: any) => 
    <T>(baseClass: { new(): T }) => { 
     Object.assign(baseClass.prototype, traits); 
     return baseClass; 
    } 

class A {} 

let o = mixin({})(A); // typeof o is new() => A 
let a = new o(); // typeof a is A 

code in playground

+0

おかげで、それが動作します。しかし、私はまだいくつかの問題に直面しています: 'mixin(スピーカー)(クラス{})'は動作しますが、 'mixin(スピーカー)(クラスはMammal {}を拡張)'は動作しません。 何か不足していますか? – kube

+0

申し訳ありませんが、何か悪いことをしていました。完璧に動作します。ありがとう。 – kube

関連する問題