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
但是关于流,您需要向模型
提供一些类型参数,比如模型
或模型
,尽管这两种类型都不是完全类型安全的。请看一下使用模型
类型的示例。