'Argument of type 'Blob' is not assignable to parameter of type 'string | Blob'
Just got an error:
Argument of type 'Blob' is not assignable to parameter of type 'string | Blob'.
Type 'import("buffer").Blob' is not assignable to type 'Blob'.
The types returned by 'stream()' are incompatible between these types.
Type '{}' is missing the following properties from type 'ReadableStream<any>': locked, cancel, getReader, pipeThrough, and 2 more.
And can't understand what's going on. Tried to restart vscode but didn't help. Blob
is not assignable to param of type Blob
. ?! So Blob
returned by stream is not the same with usual Blob
?
This is my code
const audioBuffer = fs.readFileSync(`./uploads/audio/${filePath}`)
const audioBlob = new Blob([audioBuffer])
const formData = new FormData()
formData.append('file', audioBlob)
Error is showing when i'm trying to append file to formdata
Solution 1:[1]
You're using two different types called Blob
The one you are importing is from node:
import { Blob } from 'buffer' // this is from node
While the apis you are calling (FormData
) are from the DOM and expect the Blob
type defined in the DOM typings. These two Blob
types are not the same
The fix is to remove the import
for Blob
. This should use the global Blob
type defined in the DOM typings (provided you have explicitly excluded the DOM typings from your project)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Matt Bierner |