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

时间:2015-06-17 18:18:01

标签: typescript sequelize.js

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

 Sequelize.STRING(20)

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

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

知道我应该怎么做?

1 个答案:

答案 0 :(得分:2)

修复于:

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

PR + TEST将不胜感激:)

更新

  

是否有可能以某种方式在我自己的.d.ts文件中实现它,扩展提供的文件?

FAILED ATTEMPT 未经测试但可能是正确的:

declare module "sequelize"
{
  module sequelize {
     interface DataTypeString {
            (length?:number): any;
     }
  }
} 

更新2

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