我一直在为我的应用程序定义TypeScript接口,包括所有类型和数据结构,并很快将面临将大部分数据结构复制为Mongoose模式定义的任务。
我想知道是否有人已经开发出自动生成一个结构的解决方案?
我希望避免维护两个本质上相同的副本的负担。
我一直在为我的应用程序定义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)
}
并且在Mongoose中:
var IThing = new Schema({
"SomeProperty": "String"
});
IThing.methods.DoStuff = function (callback) {
// TODO
};
有点晚,但我们刚刚制作了一款工具,可以完美地实现这一点,请查看mongoose-tsgen。 这个CLI工具会生成一个包含所有模式接口的index.d.ts
文件,并且不需要您重新编写模式。 只要更改模式,就重新运行该工具即可。