簡體   English   中英

將構造函數遷移到TypeScript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM