我碰巧需要一个文件存储数据库,而UploadFS
似乎是最好的选择。我的项目是使用 Angular2 typescript 和 Meteor 编写的。
meteor 添加 jalik:ufs-gridfs
到目前为止,当我尝试像这样导入库时它会失败:
从“meteor/jalik:ufs”导入 {UploadFS}
抛出的错误表示它无法找到该库(在客户端)。
我认为这可能是因为该库位于 javascript
中,而项目的其余部分位于 typescript
中,所以我尝试编写一个 stub ufs.d。 ts
,首先手工制作,然后使用 dstmake ,然后当我发现我必须导出模块 UploadFS
以便 meteor (barbatus:typescript?)可以看到它时再次手动:
declare module 'meteor/jalik:ufs' {
export module UploadFS{
interface UploadFS {
...
}
}
}
到目前为止,我的 ufs.d.ts
stub 文件位于 typings/
文件夹中,并链接到 main.d.ts
。编译时没有错误。 Meteor 悲伤数据库已正确创建...但是当我尝试使用它时它坏了。
我发现 UploadFS 未定义,所以我认为它没有引用该库,即使 Meteor 编译没有任何错误。
所以我想我唯一剩下的就是手动将 jalik:ufs
和 jalik:ufs-gridfs
翻译为 typescript 。那是对的吗?有没有更简单的方法让 ufs 与 angular2-meteor 一起工作?
您会使用其他存储解决方案吗?有什么建议修复此库或选择另一个库吗?
最佳答案
我成功导入了该库,并用这一行抑制了警告:
import 'meteor/jalik:ufs'; declare let UploadFS:any;
关注https://github.com/meteor-typings和 https://github.com/Urigo/angular2-meteor/issues/102以便将来正确的类型定义。
您永远不必在 TypeScript 中重新实现 JavaScript 库才能使用它。
关于javascript - 让 UploadFS 与 angular2-meteor 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339580/