【发布时间】:2016-05-10 21:32:19
【问题描述】:
我想使用 TypeScript 创建一个数据库模式。这很简单,但我不能或不知道如何定义密钥生成器。 以用户指南为例,这样一段代码sn-p(使用JavaScript):
var schema = {
...
indexes: [
{
name: 'name', // index for case in-sensitive sorting
generator: function(obj) {
var name = obj.first + ' ' + obj.last;
return name.toLowerCase();
}
}
],
我可以使用库 ydn.db-1.0.ts(从 YDN-DB 服务器下载)或 ydn-db.d.ts(从DefinitelyTyped 下载)?
比如我写了这个ts文件:
/// <reference path="typings/ydn-db/ydn-db.d.ts" />
module YdnDbTest
{
module DatabaseHelper
{
interface Place
{
Name: string;
Location: string;
}
var AppDbSchema: DatabaseSchemaJson =
{
stores:
[
{
name: "AppDbStore",
keyPath: "Name",
indexes:
[
{
name: "idxLocation",
keyPath: "Location",
unique: true,
}
]
}
]
}
}
,我想为Location写一个生成器。我想写这样的东西:
...
indexes:
[
{
name: "idxLocation",
generator: (record: Place): string =>
{ return record.Location.toLowerCase() },
unique: true,
}
]
...
就像我为主密钥(名称)编写生成器一样,但这可能是不可能的。
【问题讨论】:
-
ydn.db-1.0.ts仅包含定义列表,而不包含源代码。所以你还是要加载ydn.db-is-core-qry.js文件。 -
ydn.db-1.0.ts 是定义文件,我应该使用它来编写 TypeScript 代码。我相信此时我不需要那个文件 ydn.db-is-core-qry.js。
-
是的,您应该在文件
///<reference path="relative/path/to/ydn.db-1.0.ts" />的顶部添加 TypeScript 代码以加载这些 TypeScript 定义,然后您可以使用文件中定义的类型。但是,您仍然需要在某些时候引用.js文件,否则它将无法在您的浏览器中运行。 -
是的,没错,但我认为这与问题无关。
标签: typescript ydn-db