Javascript 在Typescript接收函数中使用Array.from未定义错误
我尝试在我的Typescript应用程序中使用一些ES6语法,并希望将for of循环更改为Array.from,在映射可观察对象数组时,但我收到的Unfine不是函数错误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
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
(如果可行):
非常感谢你!我真的很想提高我的代码质量,而你只是给出了一个更好的解决方案!非常感谢你!我真的很想提高我的代码质量,而你只是给出了一个更好的解决方案!