无法创建打字稿 class 对象

Unable to create typescript class object

Typescript 的新手,我遇到了 Typescript class,如下所示。

export class Errors {
    errors: { [key: string]: string } = {};
}

我正在尝试手动创建此错误对象。你能展示一下这个的用法吗?我尝试了以下方法。

errList: Errors = new Errors();

errList = {'key':'value'};

errList = [
      {
        Key: "code1",
        value: "err1"
      },
      {
        Key: "code2",
        value: "err2"
      },
    ]

errList.errors = {
    [key1]:"myValueX" , [key3]:"myValueY"
};

要按照您声明的方式初始化 class,您必须使用:

var err = new Errors();
err.errors = {
    "key": "value"
};

另一种选择是也定义一个构造函数,然后你可以像这样初始化:

export class Errors {
    constructor(public errors: { [key: string]: string } = {}){};
}

var err = new Errors({
    "key": "value"
});

如果你在 class 上没有任何错误,你也可以使用接口来代替,这样你就不需要构造函数,你可以只使用对象字面量来初始化:

export interface  Errors {
    errors: { [key: string]: string };
}

var err: Errors = {
    errors: {  "key": "value" }
};

您选择哪一个取决于偏好和您的用例。我会选择构造函数版本,这是最简洁的初始化方式,而且还允许您使用 instanceof 运算符,而接口版本则没有。

你的class:

export class Errors {
    errors: { [key: string]: string } = {};
}

有一个数据成员errors,但你只能这样做:

errList: Errors = new Errors();
errList = {'key':'value'};

尝试对第二行执行此操作:

errList.errors = {'key', 'value'};