有谁知道如何获取ydb-nodejs-sdk中string
类型的表示?也许有一些枚举或方法,但我没有找到任何东西。这是一个简单的例子来说明我的意思。IType
import { Session, TypedData, Types, Ydb, declareType, snakeToCamelCaseConversion, withTypeOptions } from "ydb-sdk";
export type TestModelType = {
id: string;
value: string;
};
@withTypeOptions({namesConversion: snakeToCamelCaseConversion})
export class TestModel extends TypedData implements TestModelType {
@declareType(Types.UTF8)
id: TestModelType['id']
@declareType(Types.UTF8)
value: TestModelType['value']
constructor(fields: TestModelType) {
super(fields);
this.id = fields.id;
this.value = fields.value;
}
}
export async function insertTest(session: Session, model: TestModel) {
const query = `
DECLARE $id AS ${doSomethingToGetFieldType(model.getType('id'))};
DECLARE $value AS ${doSomethingToGetFieldType(model.getType('value'))};
INSERT INTO \`tests\` (\`id\`, \`value\`)
VALUES ($id, $value);
`;
const preparedQuery = await session.prepareQuery(query);
await session.executeQuery(preparedQuery, {
'$id': model.getTypedValue('id'),
'$value': model.getTypedValue('value')
});
}
function doSomethingToGetFieldType(field: Ydb.IType): string {
// How to get the string representation of a type?
// ...
return '';
}
没有内置方法可以直接从
Ydb.IType
界面获取字符串表示形式。Ydb.IType
但是,您可以创建到其字符串表示形式的映射。YDB Node.js SDK
该类附带Type
,其中包含代表不同类型的各种静态属性YDB
。这些属性中的每一个都是特定类或子类的实例Type
。您可以创建一个,map
其中keys
是这些类型的类名,值是它们的字符串表示形式:这有点手动执行此操作,但如果您没有这么多类型并且不想一直检查它,那应该不是问题