如何在Meteor中使用Flowtype检查Mongo集合?

6
我正在尝试在Meteor+React应用程序中使用Flowtype。为我的各种函数和类添加类型似乎效果很好,但我真的很想对不同集合的访问进行类型检查。
我的想法是指定集合“Books”的所有项目至少具有某些字段(定义为类型数组),最好在从Mongo读取数据时验证这一点(至少在开发期间),然后它将知道如果我这样做了。
const a = Meteor.books.findOne(id)

那么a的类型将会是Book。

目前,我通过Meteor.createCollection以及Meteor.find().fetch()或Meteor.findOne()访问数据。

欢迎提出建议!

1个回答

1
我认为这并不简单(目前来说),因为Meteor核心应该以某种方式支持此功能。
所以,Meteor.findOne()返回简单的JavaScript对象,而Meteor.find().fetch()返回JavaScript数组。也许你可以尝试一下Flow | Objects文档中的示例: type Book = { name: string, author: string, price: number }; const book = Meteor.books.findOne(id); // 返回{ name : 'Flowtype Handbook', author: 'renren89', price: 'free'} ( book : Book ); 但是,正如你看到的,Meteor应该在运行应用程序时首先返回数据,才能使此示例实际可用。
另一个选择是使用第三方包对集合进行模式验证。有两个竞争对手包: 也许这个解决方案比使用Flowtype更好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接