The Transferable interface represents an object that can be transfered between different execution contexts, like the main thread and Web workers.

This is an abstract interface and there is no object of this type. This interface does not define any method or property; it is merely a tag indicating objects that can be used in specific conditions, such as being transfered to a Worker using the Worker.postMessage() method.

Note: The Transferable interface technically no longer exists. The functionality of Transferable objects still exists, however, but is implemented at a more fundamental level (technically speaking, using the [Transferable] WebIDL extended attribute).

The ArrayBuffer, MessagePort, ImageBitmap and OffscreenCanvas types implement this interface.


The Transferable interface does not implement or inherit specific properties.


The Transferable interface does not implement or inherit specific properties.


Specification Status Comment
HTML Living Standard
The definition of 'Transferable' in that specification.
Living Standard Replaced Transferable interface with [Transferable] Web IDL extended attribute.
The definition of 'Transferable' in that specification.
Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
TransferableChrome Full support YesEdge Full support 12Firefox Full support 4IE Full support 10
Full support 10
Notes Internet Explorer 10 only accepts a single Transferable object as parameter, but not an array.
Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes


Full support ย 
Full support
See implementation notes.
See implementation notes.

See also