// In your main thread code async function demonstrateTransfer(file: File) { const buffer = await file.arrayBuffer(); console.log('Before transfer:'); console.log(' - byteLength:', buffer.byteLength); // e.g., 1572864 console.log(' - Can read:', new Uint8Array(buffer)[0]); // e.g., 37 // Transfer to worker worker.postMessage({ buffer }, [buffer]); // <-- The [buffer] is key! console.log('After transfer:'); console.log(' - byteLength:', buffer.byteLength); // 0 (detached!) try { console.log(' - Can read:', new Uint8Array(buffer)[0]); } catch (e) { console.log(' - Error:', e.message); // "Cannot perform Construct on a detached ArrayBuffer" } } __ __