通过用于排序的字符串访问typescript中类的属性
问题很简单,在javascript中,我可以有这样一个对象通过用于排序的字符串访问typescript中类的属性,typescript,Typescript,问题很简单,在javascript中,我可以有这样一个对象 var obj={ par1:'value1', par2:'value2' } 我可以通过这种方式访问值obj['par1']在TypeScript中是否可以使用这样的类执行相同的操作: export class obj{ par1:string; par2:string; } this.obj['par1']=value1 let docs: Documents[] = []; docs.pus
var obj={
par1:'value1',
par2:'value2'
}
我可以通过这种方式访问值obj['par1']
在TypeScript
中是否可以使用这样的类执行相同的操作:
export class obj{
par1:string;
par2:string;
}
this.obj['par1']=value1
let docs: Documents[] = [];
docs.push(new Documents('value1', 'value2'));
docs.push(new Documents('value3', 'value4'));
更新
这是文档类
export class Documents {
par1: string
par2: string
constructor(par1: string,
par2: string
){
this.par1=par1
this.par2=par2
}
}
这是我的尝试:
private docs:Documents[]=new Documents[
new Documents('value1','value2'),
new Documents('value3','value4')
];
sort(ordertype:string,property:string){
for(let doc of this.docs){
for(let field in doc)
console.log(doc[field])
}
}
这是一个错误:
[ts]元素隐式具有“any”类型,因为索引表达式不是“number”类型
我甚至试着把它串起来,但什么也没有
更新2
我已经看到了错误,我更正了它,上面的代码是正确的并且可以工作。尝试用
console.log((doc as any)[field])
替换console.log((doc as any)[field])
如果不正确地创建文档
数组,应该是这样的:
export class obj{
par1:string;
par2:string;
}
this.obj['par1']=value1
let docs: Documents[] = [];
docs.push(new Documents('value1', 'value2'));
docs.push(new Documents('value3', 'value4'));
或
如果您这样做了,那么您的代码工作正常,请检查它。您尝试过吗?您是否收到任何错误?该类的实例是在何处创建的?好的,很抱歉,这是一个一般性问题,旨在获取有关typescript的一些信息,并了解javascript对象与typescript类之间的差异。完成该操作后,异常情况相同。