我一直在对OData存储使用带有TypeScript的jaydata,如下所述:http://jaystack.com/blog/typescript-meets-odata-with-the-help-of-jaydata-and-jaysvcutil。
现在,我正在尝试扩展应用程序以使用本地存储(例如,webSql),但似乎打字稿声明文件只允许实例化 OData 上下文。如何在定位其他存储提供程序时使用声明文件?
我在JayData工作。抱歉回复晚了。在JayData中,我们有一个名为"local"的"虚拟"提供商。它隐藏了不同浏览器支持的不同本地存储技术,因此您不必担心它并为IndexedDB,WebSQL和HTML5.localStorage编写代码。只需写一次,它就会起作用。
您所要做的就是更改服务的参数,如下所示:
var mydatabaseService = new mydatabase.mydatabaseService({
name: 'local',
databaseName: 'myitems'
});
有几点需要注意:-字符串主键不支持(不是 JayData 支持,而是存储)-如果你想要导航属性,那么目前它只受sqLite支持,所以你必须显式使用它(名称:"sqLite"而不是名称:"local"),并且SQLite不能在每个设备中找到。我们将很快在其他商店中实现导航。
冒着陈述显而易见的风险:您可以创建自己的d.ts
声明文件,或者编辑您一直在使用的声明文件,或者查看此处是否有:https://github.com/borisyankov/DefinitelyTyped