【问题标题】:How to use TypeScript with Loopback如何使用 TypeScript 和 Loopback
【发布时间】:2015-02-18 19:06:57
【问题描述】:

我使用 Strongloop 的 Loopback 作为 REST 框架和 ORM。我想将 TypeScript 用于我的业务逻辑。但是,Loopback 需要具有特定形状的 JavaScript 来支持其框架。例如:

module.exports = function(Person){

    Person.greet = function(msg, cb) {
      cb(null, 'Greetings... ' + msg);
    }

    Person.remoteMethod(
       'greet', 
        {
          accepts: {arg: 'msg', type: 'string'},
          returns: {arg: 'greeting', type: 'string'}
        }
    );
}; 

生成上述 JavaScript 代码的 TypeScript 代码是什么?

【问题讨论】:

  • 你如何在你的打字稿代码中使用环回模型?
  • 你能说得更具体点吗……不知道你在问什么。
  • 我只是想知道,既然 Loopback 模型被定义为 JSON,你是否找到了一种方法将这些模型映射到 TypeScript 中以便编译器验证你的代码。
  • 我们成功地将 Loopback 与 TypeScript 结合使用。我们在启动时动态生成 REST 端点,而不是使用 JSON 模式。然后我们有一个应用程序为我们的所有模型生成 TS 接口,然后我们将其“包含”在我们的 TS 代码中。这在编码时给了我们强类型,但它不会在运行时执行验证。
  • 嗨@ASA2 - 我认为为您的模型生成 TS 接口的应用程序不是开源的,是吗?为什么选择走 JS 模型 -> TS 接口,而不是在 TS 中创建模型并生成兼容 Loopback 的 JS?

标签: javascript rest typescript loopbackjs strongloop


【解决方案1】:

生成上述 JavaScript 代码的 TypeScript 代码是什么?

您可以按原样使用此代码(JavaScript 是 TypeScript)。如果您对 module.export 感到好奇,您可以使用 TypeScript 的 --module commonjs 编译标志以 Typeaware 的方式获得它,如下所示:

function personMixin(Person){
    Person.greet = function(msg, cb) {
      cb(null, 'Greetings... ' + msg);
    }

    Person.remoteMethod(
       'greet', 
        {
          accepts: {arg: 'msg', type: 'string'},
          returns: {arg: 'greeting', type: 'string'}
        }
    );
};

export = personMixin; // NOTE!

这是关于 TypeScript 模块模式的教程:https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

【讨论】:

  • 谢谢!这样可行。此外,它可以在没有 --module commonjs 的情况下工作。 TypeScript 有什么变化吗?另外,我将如何在 Visual Studio 中指定这些参数以便自动附加它们?
  • Commonjs 是默认的。从项目属性中指定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多