Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typescript中加载类属性_Typescript - Fatal编程技术网

在typescript中加载类属性

在typescript中加载类属性,typescript,Typescript,我创建了一个“load”函数,它将采用JSON格式的数据,并将属性加载到我的类的属性中。我第一次尝试使用typescript,并且已经设法修复了大多数错误,但是有一些我无法解决 load(id): void{ let item:object = this.items.find(item => item.id == id); if(typeof(item) != 'undefined'){ for(let k in item){ if(item.hasOwnPro

我创建了一个“load”函数,它将采用JSON格式的数据,并将属性加载到我的类的属性中。我第一次尝试使用typescript,并且已经设法修复了大多数错误,但是有一些我无法解决

load(id): void{
  let item:object = this.items.find(item => item.id == id);
  if(typeof(item) != 'undefined'){
    for(let k in item){
      if(item.hasOwnProperty(k)){
        this[k] = item[k];
      }
    }
  }
}
这会产生以下错误:

    Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}'.
    No index signature with a parameter of type 'string' was found on type '{}'.
    386 |       for(let k in item){
    387 |           if(item.hasOwnProperty(k)){
  > 388 |               this[k] = item[k];
        |                         ^
    389 |           }
    390 |       }
    391 |       }
我该如何着手解决这个问题?我使用的模式有问题,还是我可以用不同的方式声明类型来阻止错误出现?

type
object
(我承认这很令人困惑),没有索引签名,这意味着你不能用括号访问器读取或写入值

您可以通过声明
let item:any
来解决此问题,但这将关闭任何类型检查

或者类似这样的
让item:{[propName:string]:any}
这并不是更好