私は自分のアプリのすべての型とデータ構造に対して TypeScript インターフェースを定義してきましたが、すぐにデータ構造のほとんどを Mongoose スキーマ定義として複製するタスクに直面します。
誰かが他のものから自動生成するソリューションを作成していないのではないかと思っていましたか?
本質的に同じものの 2 つのコピーを維持する負担を避けたいと思います。
私は自分のアプリのすべての型とデータ構造に対して TypeScript インターフェースを定義してきましたが、すぐにデータ構造のほとんどを Mongoose スキーマ定義として複製するタスクに直面します。
誰かが他のものから自動生成するソリューションを作成していないのではないかと思っていましたか?
本質的に同じものの 2 つのコピーを維持する負担を避けたいと思います。
最も簡単なのは、解析しやすい形式を使用し、そこから 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
};