[英]Migrating constructor function to TypeScript
因此,我有一個相當大的sails.js應用程序,我計划在接下來的幾個月中將代碼庫遷移到TypeScript,我將sails moduleloader修改為使用ts-node(我可能很快會打開一個pull-request)沒關系。
問題是我對即將提出的TypeScript不太滿意,想知道是否有人提出建議。
在帆中,鈎子看起來像這樣:
module.exports = function(sails) {
return {
initialize: function(next) {
return next();
}
};
};
我最初想到的TypeScript是
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);
}
有什么建議么?
謝謝
我不確定您要尋找的是什么,但是如果您不希望對class Hook
完全使用OOP,那么也可以選擇interface Hook
。 這樣,您可以保留原始代碼,而只需向其中添加一些類型。
interface Hook {
initialize(next: Function);
}
export = function(sails: any) : Hook {
return {
initialize: function(next) {
return next();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.