Javascript 在Typescript接收函数中使用Array.from未定义错误

Javascript 在Typescript接收函数中使用Array.from未定义错误,javascript,arrays,reactjs,typescript,Javascript,Arrays,Reactjs,Typescript,我尝试在我的Typescript应用程序中使用一些ES6语法,并希望将for of循环更改为Array.from,在映射可观察对象数组时,但我收到的Unfine不是函数错误 Array.from(item.modules, ([value]) => selectedImage.setModules( moudleWithThumbnail(value.name, value.version).name, moudleWithThumbna

我尝试在我的Typescript应用程序中使用一些ES6语法,并希望将for of循环更改为Array.from,在映射可观察对象数组时,但我收到的Unfine不是函数错误

   Array.from(item.modules, ([value]) =>
       selectedImage.setModules(
        moudleWithThumbnail(value.name, value.version).name,
        moudleWithThumbnail(value.name, value.version).version,
        moudleWithThumbnail(value.name, value.version).thumbnail
    ));
但如果我用另一种方式写,效果很好

 const arr = Array.from(item.modules);
    arr.map((item: any) =>
      selectedImage.setModules(
        moudleWithThumbnail(item.name, item.version).name,
        moudleWithThumbnail(item.name, item.version).version,
        moudleWithThumbnail(item.name, item.version).thumbnail
      )
    );
我不知道它们之间有什么区别。

使用
([value])=>
,您正在将参数(项目)的第一个iterable属性分解为
变量名。但是您的
项是一个对象,而不是一个iterable(像数组一样)-因此像
[value]
这样的数组解构语法将不起作用

如果要解构,请改用对象解构,提取
名称
版本

Array.from(item.modules, ({ name, version }) =>
  selectedImage.setModules(
    moudleWithThumbnail(name, version).name,
或者不要破坏结构:

Array.from(item.modules, (item) =>
  selectedImage.setModules(
    moudleWithThumbnail(item.name, item.version).name,
或者,保持代码不重复的更好策略是只调用一次
moudleWithThumbnail
(如果可行):

使用
([value])=>
,您正在将参数(项目)的第一个iterable属性分解为
变量名。但是您的
项是一个对象,而不是一个iterable(像数组一样)-因此像
[value]
这样的数组解构语法将不起作用

如果要解构,请改用对象解构,提取
名称
版本

Array.from(item.modules, ({ name, version }) =>
  selectedImage.setModules(
    moudleWithThumbnail(name, version).name,
或者不要破坏结构:

Array.from(item.modules, (item) =>
  selectedImage.setModules(
    moudleWithThumbnail(item.name, item.version).name,
或者,保持代码不重复的更好策略是只调用一次
moudleWithThumbnail
(如果可行):


非常感谢你!我真的很想提高我的代码质量,而你只是给出了一个更好的解决方案!非常感谢你!我真的很想提高我的代码质量,而你只是给出了一个更好的解决方案!