9

私は自分のアプリのすべての型とデータ構造に対して TypeScript インターフェースを定義してきましたが、すぐにデータ構造のほとんどを Mongoose スキーマ定義として複製するタスクに直面します。

誰かが他のものから自動生成するソリューションを作成していないのではないかと思っていましたか?

本質的に同じものの 2 つのコピーを維持する負担を避けたいと思います。

4

2 に答える 2

3

最も簡単なのは、解析しやすい形式を使用し、そこから 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
};
于 2012-12-19T23:52:19.710 に答える