2016-04-14 9 views
0

かなり大きなsails.jsアプリケーションがあり、今後数ヶ月間にコードベースをTypeScriptに移行する予定です.Sailsモジュールローダーをts-nodeを使用するように変更しました(おそらくすぐにプルリクエストを開いてください)、それはすべて問題ありません。コンストラクタ関数をTypeScriptに移行する

問題は、私が思いついているタイプスクリプトに満足していないということです。問題がある人がいるかどうかを知りたがっています。帆で

は、フックは、このようなものになります。

module.exports = function(sails) { 
    return { 
    initialize: function(next) { 
     return next(); 
    } 
    }; 
}; 

私が最初に

class Hook { 
    constructor(public sails: any) {} 

    initialize(next: Function) { 
    return next(); 
    } 
} 

export = function(sails: any) { 
    return new Hook(sails); 
} 

た思い付いた活字体をしかし、私は偉大なエクスポート機能が見つからないと問題がありますスコープを束縛するので、いくつかの問題が発生します。解決策は脂肪の矢を使用することですが、私は思いついた解決策の大きなファンではありません...

class Hook { 
    constructor(public sails: any) {} 

    initialize = (next: Function) => { 
    return next(); 
    }; 
} 

export = function(sails: any) { 
    return new Hook(sails); 
} 

何か提案がありますか?

おかげ

答えて

0

は、私はあなたが正確に探しているかわからないんだけど、あなたはclass Hookに完全にOOPを行くにしたくない場合は、あなただけのようにもinterface Hookのために解決することができます。そうすれば、元のコードをそのまま残して、そこにいくつかの型を追加することができます。

interface Hook { 
    initialize(next: Function); 
} 

export = function(sails: any) : Hook { 
    return { 
    initialize: function(next) { 
     return next(); 
    } 
    } 
} 
関連する問題