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