我在我的Typescript代码中使用this定义文件。问题是,根据Sequelize文档设置字符串列的长度,我应该将其类型定义为:
Sequelize.STRING(20)
并且当前的定义文件不允许这样做。它只允许Sequelize.STRING
(默认列长度为255)。
我想创建自己的定义文件,修补(扩展)此接口,以便它支持这两种情况,或者至少将Sequelize.STRING设置为any
,这样我就不会遇到编译器错误。
知道我应该怎么做?
答案 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;
}
}
}
根据当前编写定义的方式,您无法将其扩展到外部https://github.com/Microsoft/TypeScript/issues/2784