有没有办法转换此代码
export class person {
@IsString()
@Column('text')
name: string
@IsOptional()
@IsString()
@Column('text')
description?: string
}
变成类似这个的东西
export class person {
name: string
description?: string
}
我知道需要装饰器,但是当每个属性必须声明三个或三个以上属性类型时,SSOT似乎丢失了。
有没有更简单的方法来解决这个问题? JOI?模式生成?
答案 0 :(得分:4)
如果您发现自己一遍又一遍地使用同一组装饰器,则可以创建一个将它们组合在一起的新装饰器。
message = await pyscript.websocket.recv();
handle_response( json.loads( message ) );
您可以提出一些涵盖您常用用例的方法,也可以考虑将其转换成Decorator Factory,该Decorator Factory可以使用config对象并根据参数应用装饰器。
我认为与装饰器进行一点重复比使用JOI之类的方法更可取,因为您仍然必须明确声明所有规则,但要与实际模型分开放置,这需要多个真相来源