Sequelize.js 如何使用流类型正确注释Sequelize模型?

Sequelize.js 如何使用流类型正确注释Sequelize模型?,sequelize.js,flowtype,flow-typed,Sequelize.js,Flowtype,Flow Typed,我正在使用流类型的和续集^4.44.3。它抱怨是因为模型没有参数。但这似乎是使用Sequelize创建模型的标准方法,那么我做错了什么 我们走吧 如您所见,模型类定义为: class Model<TAttributes, TInitAttributes = TAttributes, TPlainAttributes = TAttributes> 现在我们可以使用定义属性的类型,并将其作为类型参数传递到Model类中,以定义我们的模型: class Conversation exte

我正在使用
流类型的
续集^4.44.3
。它抱怨是因为
模型
没有参数。但这似乎是使用Sequelize创建模型的标准方法,那么我做错了什么

我们走吧

如您所见,
模型
类定义为:

class Model<TAttributes, TInitAttributes = TAttributes, TPlainAttributes = TAttributes>
现在我们可以使用定义属性的类型,并将其作为类型参数传递到
Model
类中,以定义我们的模型:

class Conversation extends Model<ConversationAttributes> {
  // ...
类会话扩展模型{
// ...
这应该很好,但我们还有一些其他选择:

微薄贡品 这默认为
tatAttributes
,因此在我们的示例中它将是
ConversationAttributes
,因此在本例中不需要指定它

TInitAttributes
是用于构造新记录的类型。如果由于某种原因,此类型与
TInitAttributes
不同,您可以在此处指定它(可能是在
TAttributes
上存在的某些计算属性的情况下,但在
TInitAttributes
上没有意义)

TPlainAttributes 这默认为
tatAttributes
,因此在我们的示例中它将是
ConversationAttributes
,因此在本例中不需要指定它

TPlainAttributes
toJSON
方法的返回类型,也是将
{plain:true}
作为选项传递时
get
方法的返回类型。如果属性的“plain”序列化在某种程度上与
tatattributes
不同,我们可以指定“plain”的类型版本在这里。

让我们来看看

如您所见,
模型
类定义为:

class Model<TAttributes, TInitAttributes = TAttributes, TPlainAttributes = TAttributes>
现在我们可以使用定义属性的类型,并将其作为类型参数传递到
Model
类中,以定义我们的模型:

class Conversation extends Model<ConversationAttributes> {
  // ...
类会话扩展模型{
// ...
这应该很好,但我们还有一些其他选择:

微薄贡品 这默认为
tatAttributes
,因此在我们的示例中它将是
ConversationAttributes
,因此在本例中不需要指定它

TInitAttributes
是用于构造新记录的类型。如果由于某种原因,此类型与
TInitAttributes
不同,您可以在此处指定它(可能是在
TAttributes
上存在的某些计算属性的情况下,但在
TInitAttributes
上没有意义)

TPlainAttributes 这默认为
tatAttributes
,因此在我们的示例中它将是
ConversationAttributes
,因此在本例中不需要指定它


TPlainAttributes
toJSON
方法的返回类型,也是将
{plain:true}
作为选项传递时
get
方法的返回类型。如果属性的“plain”序列化在某种程度上与
tatattributes
不同,我们可以指定“plain”的类型这里的版本。

我不熟悉
sequelize
,但是关于流,您需要向
模型
提供一些类型参数,比如
模型
模型
,尽管这两种类型都不完全是类型安全的。请看一下使用
模型
类型的示例。我不熟悉
sequelize
但是关于流,您需要向
模型
提供一些类型参数,比如
模型
模型
,尽管这两种类型都不是完全类型安全的。请看一下使用
模型
类型的示例。