typescript - 从第三方定义文件扩展接口(interface)

标签 typescript sequelize.js

我正在使用 this我的 Typescript 代码中的定义文件。问题是,根据 Sequelize 文档设置字符串列的长度,我应该将其类型定义为:

 Sequelize.STRING(20)

并且当前的定义文件不允许这样做。它只允许 Sequelize.STRING (这使得默认列长度为 255)。

我想创建自己的定义文件,修补(扩展)这个接口(interface),使其支持这两种情况,或者至少将 Sequelize.STRING 设置为 any这样我就不会收到编译器错误。

知道我该怎么做吗?

最佳答案

修复:

    interface DataTypeString extends DataTypeStringBase {
        (length?:number): any; // ADD this 
    }

PR + TEST 将不胜感激:)

更新

Would it be possible somehow to implement this in my own .d.ts file, extending the provided one?



尝试失败
未经测试但可能正确:
declare module "sequelize"
{
  module sequelize {
     interface DataTypeString {
            (length?:number): any;
     }
  }
} 

更新 2

根据当前定义的编写方式,您无法在外部扩展它https://github.com/Microsoft/TypeScript/issues/2784

关于typescript - 从第三方定义文件扩展接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899319/

相关文章:

javascript - 类型 'User' 的参数不可分配给类型 'string' 的参数

lambda - 使用 lambda/arrow 函数的 TypeScript 抽象方法

angular - FirebaseError : Function DocumentReference. set() 调用了无效数据。不支持的字段值:未定义(在字段名称中找到)

node.js - Sequelize find 没有成功功能

node.js - 非映射属性 - Sequelize

node.js - NodeJS Sequelize 中真的需要迁移吗?

javascript - Nodejs Sequelize中循环获取异步数据

angular - Ionic2 ion-toggle 在 ionChange 上获得值(value)

typescript - 在 TypeScript 中使用元组(类型推断)

sequelize.js - 如何在 Sequelize 中使用 'or' 运算符制作位置?