Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Reference
  4. JavaScript error reference
  5. TypeError: WeakSet key/WeakMap value 'x' must be an object or an unregistered symbol

TypeError: WeakSet key/WeakMap value 'x' must be an object or an unregistered symbol

The JavaScript exception "WeakSet key (or WeakMap value) 'x' must be an object or an unregistered symbol" occurs when a value of invalid type is used as a key in aWeakSet or as a value in aWeakMap.

Message

TypeError: Invalid value used as weak map key (V8-based)TypeError: WeakMap key 1 must be an object or an unregistered symbol (Firefox)TypeError: WeakMap keys must be objects or non-registered symbols (Safari)TypeError: Invalid value used in weak set (V8-based)TypeError: WeakSet value 1 must be an object or an unregistered symbol (Firefox)TypeError: WeakSet values must be objects or non-registered symbols (Safari)

Error type

TypeError

What went wrong?

WeakSet andWeakMap require the keys to begarbage collectable. Only objects and non-registered symbols (that is,symbols not returned bySymbol.for()) are valid. For more information, seeMemory management. If you want to add keys that are strings, numbers, or other primitive values, you should store them in a regularSet orMap instead.

Examples

Invalid cases

js
new WeakSet().add(1); // TypeErrornew WeakMap().set(1, {}); // TypeErrornew WeakSet([1]); // TypeErrornew WeakMap([[1, {}]]); // TypeError

Valid cases

js
new WeakSet().add({}); // OKnew WeakMap().set({}, 1); // OKnew Set([1]); // OKnew Map([[1, {}]]); // OK

See also

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp