我正在尝试使用以下代码使用节点/打字稿读取文件:
refs/for/<branch>
但是当我尝试使用const openFile = util.promisify(fs.open);
write(data: Buffer, index: number) {
if (!checkPieceIntegrity(data, this.pieceMap[index])) {
return false;
} else {
return openFile(this.path, "r+")
.then(fd => {
const writeStream = createWriteStream(fd, {
flags: "r+",
start: index * this.pieceLength,
autoClose: true,
})
return util.promisify(writeStream.write)(data);
})
}
}
进行编译时,我得到了错误:
tsc
。
关于此行:
Argument of type 'number' is not assignable to parameter of type 'PathLike'
。
node.js文档说const writeStream = createWriteStream(fd, {
返回一个文件描述符,而不是一个数字,那么为什么打字稿认为fs.open
是一个数字,我怎样才能将其识别为文件描述符?
答案 0 :(得分:1)
fs.open返回文件描述符(作为整数)。但是createWriteStream收到一个<string> | <Buffer> | <URL>
作为它的第一个参数,而不是一个文件描述符。
检查fs.write中是否有接收文件描述符并允许写入文件的函数。