Typescript 从第三方定义文件扩展接口

Typescript 从第三方定义文件扩展接口,typescript,sequelize.js,Typescript,Sequelize.js,我在打字脚本代码中使用了定义文件。问题在于,根据Sequelize文档设置字符串列的长度,我应该将其类型定义为: Sequelize.STRING(20) 而当前的定义文件不允许这样做。它只允许Sequelize.STRING(默认列长度为255) 我想创建自己的定义文件,修补(扩展)此接口,使其支持这两种情况,或者至少将Sequelize.STRING设置为any,这样我就不会出现编译器错误 你知道我该怎么做吗?请点击: interface DataTypeString exten

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

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

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

你知道我该怎么做吗?

请点击:

    interface DataTypeString extends DataTypeStringBase {
        (length?:number): any; // ADD this 
    }
PR+测试将不胜感激:)

更新 是否有可能在我自己的.d.ts文件中实现这一点,扩展提供的文件

尝试失败 未经测试但可能正确:

declare module "sequelize"
{
  module sequelize {
     interface DataTypeString {
            (length?:number): any;
     }
  }
} 
更新2
根据定义当前的编写方式,您无法对其进行外部扩展

我了解如何修复提供的d.ts文件(我将发送PR)。但我也试图理解声明合并在Typescript中是如何工作的。是否有可能在我自己的.d.ts文件中实现这一点,扩展提供的文件?。非常感谢您的帮助。现在我得到TS2349:无法调用类型缺少调用签名的表达式。我认为这里的问题是sequelize.d.ts只导出一个变量,因此我自己的.d.ts无法访问任何其他内容。但是我只是猜测。因此,更新方法myfile.ts(12,23)的完整错误列表:error TS2349:无法调用类型缺少调用签名的表达式。typings/sequelize/sequelize.d.ts(2787,5):错误TS2309:导出赋值不能与其他导出元素一起在模块中使用。我有点期待它,因此未经测试。所以是的。。。简而言之,您无法根据定义当前的编写方式进行修改。TS问题已得到解决。现在可能吗?