gpt4 book ai didi

sequelize.Model.Update 的 Typescript 接口(interface)不正确?

转载 作者:行者123 更新时间:2023-12-03 22:18:52 26 4
gpt4 key购买 nike

我正在使用 Sequelize 和 typescript 。我正在使用这个定义 sequelize.d.ts

我发现使用 model.update 的问题方法,此接口(interface)接收将要更新的值作为第一个参数,但此参数有 TAttributes类型。我认为这个论点应该是 string类型。因为我们可以通过只发送 TAttributes 的一个子集来使用这个函数。

让我举个例子,如果我有这样的模型:

 Person.attribues: {
id: number;
field1: string;
field2: number;
}

然后,在创建并持久化一个实例之后,我想要更新文件 2,我应该这样做:
Person.update(
{field2: 5},
{where: {id: 1}}
)

对于这个例子,我遇到了 typescript 错误,因为第一个参数需要 Person.attributes 类型的东西我只提供子集 {field2: 5}
我已经在 github 中做了一个问题,你怎么看?我在想好吗?

最佳答案

您应该使用 sequelize.d.ts 的属性声明具有可选的属性名称,正是因为如此。

在您的情况下,您需要执行以下操作:

interface PersonAttributes {
id?: number;
field1?: string;
field2?: number;
}

通过这样做,当您使用 update 时,它​​将特别允许您仅更新一个属性。

您可以查看 sequelize-tests.d.ts 中的示例以供进一步引用。

关于sequelize.Model.Update 的 Typescript 接口(interface)不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38689561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com