2016-04-14 80 views
0

所以我有一個相當大的sails.js應用程序,並且計劃在接下來的幾個月將代碼庫遷移到TypeScript,我修改了sails moduleloader以使用ts-node(我可能會很快就會打開一個拉動請求),這很好。將構造函數遷移到TypeScript

問題是,我對我想出來的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

我不知道你究竟在尋找,但如果你不想完全去OOP用class Hook,你可以和定居的interface Hook。這樣,你可以保留你的原始代碼,並添加一些類型。

interface Hook { 
    initialize(next: Function); 
} 

export = function(sails: any) : Hook { 
    return { 
    initialize: function(next) { 
     return next(); 
    } 
    } 
} 
相關問題