类型 'typeof Questions' 不可分配给类型 'typeof Model'



在模型中添加关系时,我得到错误Type 'typeof Questions' is not assignable to type 'typeof Model'.

问题.model.ts

import { Column, Table, PrimaryKey, Default, DataType, Model } from "sequelize-typescript";
@Table({timestamps: true})
export class Questions extends Model<Questions> {
@PrimaryKey
@Default(DataType.UUIDV1)
@Column(DataType.UUID)
id: string;
@Column
question: string;
@Column({ defaultValue: true })
isActive: boolean;
}

选项.型号.ts

import { Column, Table, PrimaryKey, Default, DataType, ForeignKey, HasOne, Model } from "sequelize-typescript";
import { Questions } from "./models/questions.model";
@Table({timestamps: true})
export class Options extends Model<Options> {
@PrimaryKey
@Default(DataType.UUIDV1)
@Column(DataType.UUID)
id: string;
@ForeignKey(() => Questions)
@Column
questionsId: number;
@HasOne(() => Questions)
question: Questions;
@Column({ defaultValue: false })
isCorrectAns: boolean;
}

我的用户模块

import { SequelizeModule } from '@nestjs/sequelize';
import { Questions } from './models/questions.model';
import { Options } from './options.model';
@Module({
imports: [
SequelizeModule.forFeature([Questions, Options])
],
controllers: [UserController],
providers: [UserService]
})
export class UserModule {}

我也遇到过同样的问题。可以通过删除类型构造函数(<Questions><Options>(来解决此问题。

在我的案例中,我有一个问题属性界面,必须更改:

class TalentData extends Model<TalentData, TalentDataAttributes>

至:

class TalentData extends Model implements TalentDataAttributes

但这似乎是一个序列化的打字错误。

根据Nest网站上的文档,Model应该来自sequelize-typescript。您正在从sequelize/types导入它。

假设我们有两个表Likes和Quotes,我们只想在Likes表中引用quote_id作为外键:
定义这样的外键

@ForeignKey(() => Quotes)
@Column
quote_id: number;  
@BelongsTo(() => Quotes, {onDelete: "cascade", foreignKey: "quote_id"})
quote: Quotes;

注意-请从sequelize typescript导入BelongsTo,而不是sequelize/types

相关内容

最新更新