【发布时间】:2020-06-08 17:45:57
【问题描述】:
我正在尝试创建一个通用的表构建器类。在表生成器中,我定义了一个存储列定义的匿名类。我希望表生成器将这些定义的实例存储在一个数组中。这是我目前正在使用的简化类定义:
export class TableBuilder<T> {
Column = class {
constructor(public data: T) {}
}
private columns: Array<TableBuilder['Column']>
column(data: T) {
const col = new this.Column(data);
this.columns.push(col);
}
}
this.columns.push(col) 行引发编译时错误:“(匿名类)”类型的参数不可分配给“类型(匿名类)”类型的参数
有没有办法将columns 成员定义为匿名类实例数组?我可以将其定义为类型any[],但我更喜欢保留列条目类型强制的解决方案。
【问题讨论】:
-
你的代码在typescript playground. 中给出了不同的错误你能提供一个完整的例子来说明你到达那里的错误吗?
标签: typescript generics types anonymous-class