Javascript 类型“void”上不存在属性“forEach”
以下代码是:1。正在读取文件夹。2.合并和自动裁剪图像。3.将最终图像保存到png文件中Javascript 类型“void”上不存在属性“forEach”,javascript,node.js,typescript,types,Javascript,Node.js,Typescript,Types,以下代码是:1。正在读取文件夹。2.合并和自动裁剪图像。3.将最终图像保存到png文件中 const filenames = fs.readdirSync('./in').map(filename => { return path.parse(filename).name }) const finalImages = filenames.forEach(async filename => { const bottomImage = await jimp.read(`./in
const filenames = fs.readdirSync('./in').map(filename => {
return path.parse(filename).name
})
const finalImages = filenames.forEach(async filename => {
const bottomImage = await jimp.read(`./in/${filename}.png`)
const topImage = await jimp.read('./dots.png')
const file = bottomImage
.composite(topImage, 0, 0)
.autocrop(false)
return {
filename,
file
}
})
finalImages.forEach((finalImage: any) => {
finalImage.file.write(`./out/${finalImage.filename}.png`)
})
我收到以下类型脚本错误:
类型“void”上不存在属性“forEach”
原因可能是什么,以及如何修复它?我怀疑您想要使用的是地图而不是forEach。 map迭代一个数组并返回一个新数组,而forEach只进行迭代而不返回任何内容 这就是TS编译器推断finalImages类型为void的原因。forEach不返回任何内容,您需要使用map代替wait Promise.all