sequelize-typescript addColumn 与 'after

问题描述 投票:0回答:1

我正在使用 mysql/mariadb 创建一个包含 Sequelize 的列。查看文档,可以在另一列之后创建此列,只需在第三个参数中定义 after 属性,但是当我使用打字稿时,它给了我以下类型错误

Object literal may only specify known properties, and 'after' does not exist in type 'ModelAttributeColumnOptions<Model<any, any>> | AbstractDataTypeConstructor | AbstractDataType'

迁移如下:

import { QueryInterface } from "sequelize"
import { DataType } from "sequelize-typescript"

module.exports = {
async up(queryInterface: QueryInterface) {
queryInterface.addColumn('Contacts', 'responsible', {
type: DataType.JSON,
after: 'number'
})
},
}

我尝试创建一个类型来续集,但失败了。我尝试过的类型如下,我知道这是非常错误的,我是这个“打字”的新手

declare module 'sequelize/types/lib/query-interface' {
    interface QueryInterfaceOptions {
        after?: string
    }
}
sequelize.js sequelize-typescript
1个回答
0
投票

对于任何正在寻找相同内容的人,我已经找到了解决方案

import { DataType, ModelAttributeColumnOptions, QueryInterface, QueryInterfaceOptions, TableName } from 'sequelize'

declare module 'sequelize' {
    interface QueryInterface {
        addColumn(table: TableName, key: string, attribute: AddColumnOptions | DataType, options?: QueryInterfaceOptions): Promise<void>
    }

    interface AddColumnOptions extends ModelAttributeColumnOptions {
        after?: string
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.