【问题标题】:Migrating constructor function to TypeScript将构造函数迁移到 TypeScript
【发布时间】:2016-04-14 15:31:57
【问题描述】:

所以我有一个相当大的sails.js 应用程序,我计划在接下来的几个月内将代码库迁移到TypeScript,我修改了sails 模块加载器以使用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);
}

但是我发现导出功能不是很好,并且存在sails绑定范围的问题,因此这会导致一些问题。解决方案是使用粗箭头,但我不喜欢我提出的解决方案...

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

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

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

有什么建议吗?

谢谢

【问题讨论】:

    标签: javascript node.js typescript sails.js


    【解决方案1】:

    我不确定您到底在寻找什么,但如果您不想完全使用 class Hook 进行 OOP,您也可以选择 interface Hook。这样,您可以保留原始代码,只需向其中添加一些类型。

    interface Hook {
      initialize(next: Function);
    }
    
    export = function(sails: any) : Hook {
      return {
        initialize: function(next) {
          return next();
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-03
      • 2018-01-05
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      相关资源
      最近更新 更多