需要在typescript中为高度嵌套的对象设计类



所以我有模型类来创建对象,基本上我想实现的是创建动态对象的这种方式。但我不认为这是一个好方法,有人能帮我吗?我怎样才能使这个更干净,更可读。这是一个尝试创建嵌套json对象来发送请求。

return new ClassBase(
new ClassA(
new ClassB(
iAuthPassword,
),
new ClassC(name),
),
new ClassD(sessionToken),
new ClassE(
new ClassF(['ABC', 'DDA']),
),
);

我个人会使用普通的对象文字:

let request = {
credentials: {
password: iAuthPassword,
},
name,
sessionToken,
list: ['ABC', 'DDA']
};

如果这是你唯一使用的类型,我认为为它声明一个单独的类型没有什么好处。如果在代码的其他地方确实需要这种类型,我会声明一个接口:

interface AuthRequest {
credentials: {
password: string,
},
name: string,
sessionToken: string,
list: string[];
}

无论哪种情况,都可以通过嵌套类型来声明嵌套类型。这样做的好处是,嵌套在源代码中很明显,您不必命名内部类型(除非您想要,例如在其他地方重用它们)。

使用类来描述JSON通常不是一个好主意,因为类的唯一优点是它们具有继承行为状态的原型,对于唯一目的是转换为JSON的对象通常不需要。

最新更新