基于接口定义piia状态,而无需再次手动创建每个属性



我试图在SPA中实现状态管理(pinia)。我们正在使用typescript,我想知道是否有任何方法来定义基于接口的状态,而不需要再次键入状态中的每个属性。基本上,告诉基于接口的状态,并使用正确的结构初始化。

我可以定义一个状态来遵循一个特定的接口结构使用defineStore<string,>(这已经是一个很大的胜利),但我想知道是否有可能遵循扩展操作符的概念,以避免在状态声明中键入接口的所有属性。

概念示例

interface ICustomer {
id: number;
name: string;
// up to 100 more properties and in some cases, nested objects based on other interfaces
}
export const useCustomersStore = defineStore<string, ICustomer>('customers', {
state: () => ({
...ICustomer,
}),
...

我们有相当大的接口(我说的是每个接口中有50-100个属性),如果我们必须在状态下再次输入每个属性,它可能会变得有点冗长。我猜主要的问题是状态需要一个默认值来初始化,但如果我们必须再次输入所有属性,它会让事情变得有点混乱。此外,如果我们必须记住在更改接口时修改状态属性,这也不是很将来的证明。我们的api总是与接口匹配完全相同的接口结构,所以我们也使用axios指定每次调用的接口。

感谢

你可以这样做:

interface ICustomer {
id: number;
name: string;
// up to 100 more properties and in some cases, nested objects based on other interfaces
}
export const useCustomersStore = defineStore('customers', {
state: (): ICustomer => ({
}),
...

相关内容

  • 没有找到相关文章

最新更新