[]和LinkedList<> / Dictionary<>的打字稿中是否有共同(非任何)类型

时间:2014-04-23 22:34:20

标签: json collections typescript

我们必须在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至少我可以在匹配两种用途的接口中使用?

1 个答案:

答案 0 :(得分:0)

您正在寻找的JSON类型是一个关联数组:

export interface IDocHeader {
    format: DocumentFormat;
    fonts: fonts.FontAttributes[];
    styles: { [styleId: string]: styles.Style; };
}