我有一个环回模型(在很多情况下)以自己的原始json形式表示。例如
@model()
class SomeModel extends Entity {
@property({ type: 'string' })
id?: string;
}
......在原始的json中
interface IRawSomeModel {id?: string}
有没有办法以编程方式获得IRawSomeModel
?
我能想到的一种方法是将两者结合起来,但是要重复所有事情需要做很多额外的工作,例如:
export interface IRawSomeModel {id?: string}
@model()
export class SomeModel extends Entity implements IRawSomeModel {
@property({ type: 'string' })
id?: string;
}
最终,我正在寻找的是RawObjectFormOfModel<SomeModel>
的语法
所有这一切的重点是能够拥有如下代码:
const obj: RawObjectFormOfModel<SomeModel> = {}; // no error about missing class functions
obj.id = "test"
获取模型的原始对象类型表示的最佳方法是什么?
lb4中的Entity类有两种方法可用。 toJSON()和toObject()。它们都返回模型类的普通对象表示。您可以将它们用于此目的。
从dts定义“model.d.ts”
/**
* Serialize into a plain JSON object
*/
toJSON(): Object;
/**
* Convert to a plain object as DTO
*/
toObject(options?: Options): Object;
我能找到的最好的方法是创建一个接口并实现它。
export interface IRawSomeModel {id?: string}
@model()
export class SomeModel extends Entity implements IRawSomeModel {
@property({ type: 'string' })
id?: string;
}
我希望我能找到一种方法来获取装饰器信息并使用它来生成界面。