传递对象来创建时续集打字稿错误

Avi*_*nig 3 sequelize.js typescript sequelize-typescript

在使用sequelize-typescript npm 当尝试调用时Street.create(obj)出现错误:

“plainObject”类型的参数不可分配给“Optional<Street, NullishPropertiesOf>”类型的参数。类型“plainObject”缺少类型“Omit<Street, NullishPropertiesOf>”中的以下属性:sequelize、destroy、restore、update 以及其他 39 个属性

这是模型:

import { Table, Model, Column, PrimaryKey } from 'sequelize-typescript';


@Table({ timestamps: false, tableName: 'street' })
class Street extends Model<Street> {
    @PrimaryKey
    @Column
    street_id: string;

    @Column
    location_id: string;

    @Column
    location_symbol: string;

    @Column
    street_name: string;

    @Column
    street_synonym: string;

    @Column
    street_symbol: string;

    @Column
    updated: Date;
}

export default Street;
Run Code Online (Sandbox Code Playgroud)

这是电话

 Street.create({
                location_id: 'string',
                location_symbol: 'string',
                street_name: 'string',
                street_synonym: 'string',
                street_id: 'string',
                street_symbol: 'string',
                updated: new Date(),
            });
Run Code Online (Sandbox Code Playgroud)

Suv*_*ica 5

我猜你正在使用sequelize v6。

只需删除通用<Street>即可工作。你不再需要它了。

import { Table, Model, Column, PrimaryKey } from 'sequelize-typescript';


@Table({ timestamps: false, tableName: 'street' })
class Street extends Model {
    @PrimaryKey
    @Column
    street_id: string;

    @Column
    location_id: string;

    @Column
    location_symbol: string;

    @Column
    street_name: string;

    @Column
    street_synonym: string;

    @Column
    street_symbol: string;

    @Column
    updated: Date;
}

export default Street;
Run Code Online (Sandbox Code Playgroud)