打字稿的新手,我遇到了类似以下的Typescript类。
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"
};
答案 0 :(得分:1)
要在声明它时初始化类,您必须使用:
var err = new Errors();
err.errors = {
"key": "value"
};
另一种选择是定义一个构造函数,然后你可以像这样初始化:
export class Errors {
constructor(public errors: { [key: string]: string } = {}){};
}
var err = new Errors({
"key": "value"
});
如果您在类上没有任何错误,您也可以使用接口,然后您不需要构造函数,您可以只使用对象文字进行初始化:
export interface Errors {
errors: { [key: string]: string };
}
var err: Errors = {
errors: { "key": "value" }
};
您选择哪一个是优先选择和您的用例。我会选择构造函数版本,因为初始化最简洁,但也允许你使用instanceof
运算符,而接口版本则没有。
答案 1 :(得分:0)
你的班级:
export class Errors {
errors: { [key: string]: string } = {};
}
有一个数据成员errors
,但您只能这样做:
errList: Errors = new Errors();
errList = {'key':'value'};
尝试替换第二行:
errList.errors = {'key', 'value'};