从TypeScript接口生成Mongoose模式?

从TypeScript接口生成Mongoose模式?,mongoose,typescript,Mongoose,Typescript,我一直在为我的应用程序中的所有类型和数据结构定义TypeScript接口,不久将面临将大多数数据结构复制为Mongoose模式定义的任务 我想知道是否有人想出了一个解决方案来自动从另一个生成一个 我希望避免维护本质上相同内容的两个副本的负担。最简单的方法是使用一些易于解析的格式,并由此生成Typescript和Mongoose接口。以下是一个JSON示例: { "name": "IThing", "type": "interface", "members": [ { "nam

我一直在为我的应用程序中的所有类型和数据结构定义TypeScript接口,不久将面临将大多数数据结构复制为Mongoose模式定义的任务

我想知道是否有人想出了一个解决方案来自动从另一个生成一个


我希望避免维护本质上相同内容的两个副本的负担。

最简单的方法是使用一些易于解析的格式,并由此生成Typescript和Mongoose接口。以下是一个JSON示例:

{ "name": "IThing",
  "type": "interface",
  "members": [
      { "name": "SomeProperty",
        "type": "String" },
      { "name": "DoStuff",
        "type": "function",
        "arguments": [
            { "name": "callback",
              "type": "function",
              "arguments": [],
              "return": "Number" }
        ] }
  ] }
结构,甚至标记语言都可以根据需要进行更改

上述内容将在TypeScript中生成类似的内容:

interface IThing {
    SomeProperty: String;
    DoStuff(callback: () => Number)
}
在猫鼬中:

var IThing = new Schema({
    "SomeProperty": "String"
});

IThing.methods.DoStuff = function (callback) {
    // TODO
};

有点晚了,但我们刚刚构建了一个工具来完成这项工作,请查看。此CLI工具生成一个包含所有架构接口的
index.d.ts
文件,不需要重写架构。无论何时更改模式,只要重新运行该工具。

谢谢您的建议。实际上,我从一个带有样本数据的JSON模型开始,并由此派生出接口。我认为后者更简洁,更容易维护,所以我可能会寻找一个解决方案,从中生成猫鼬的东西。(并对评论的延迟表示歉意,工作遇到了阻碍)没有一个typescript到schema转换程序真是太差劲了。。。无论如何,是否已经有一个库提供了建议的解决方案?已找到。这就解决了一半的问题:D仍然在寻找虚张声势的对手。我将把这个问题作为相关问题补充。也许有人想出了解决办法。。。如果它们都能自动同步,那就太好了。