我们必须在Web worker和主应用程序之间复制对象。我们已经建立了一个系统,对于每个复制的类,我们定义一个接口,然后定义一个实现接口的类。
这非常有用,因为可以将复制的JSON强制转换为接口,然后可以分配属性。让类实现接口并不重要,但它很干净,可能会减少错误。
但我们遇到了问题。我们使用typescript-collections类。所以我的班级将有:
export class DocHeader {
public format:DocumentFormat;
public fonts : collections.LinkedList<fonts.FontAttributes>;
public styles : collections.Dictionary<string, styles.Style>;
但是JSON是一个数组,因此将是:
export interface IDocHeader {
format:DocumentFormat;
fonts : fonts.FontAttributes[];
styles : styles.Style[];
}
我知道答案可能是“不,不可能”。但我觉得要问,从来没有伤害过。是否有一些类型(而不是任何)像IEnumerable至少我可以在匹配两种用途的接口中使用?
答案 0 :(得分:0)
您正在寻找的JSON类型是一个关联数组:
export interface IDocHeader {
format: DocumentFormat;
fonts: fonts.FontAttributes[];
styles: { [styleId: string]: styles.Style; };
}