@petsel/es-type-detection - v1.0.0
    Preparing search index...

    Type Alias BoxedSymbol

    BoxedSymbol: Symbol & { __brand: "BoxedSymbol" }

    A purposely boxed Symbol object type, e.g., created via Object(Symbol('key')). This works perfectly fine when used as an object's symbol-key.

    Consider the following example:

    const mySymbolKey = Symbol('key');
    const symbolObject = Object(mySymbolKey);

    console.log('(mySymbolKey === symbolObject) ...', (mySymbolKey === symbolObject)); // false
    console.log('(mySymbolKey == symbolObject) ...', (mySymbolKey == symbolObject)); // true

    const myObject = { foo: 'Foo' };
    myObject[mySymbolKey] = 'value set by `mySymbolKey`.';
    // ^^^^^^^^^^^

    console.log({ myObject }); // { "myObject": { "foo": "Foo", Symbol(key): "value set by `mySymbolKey`." } }
    console.log('myObject[symbolObject] ...', myObject[symbolObject]); // 'value set by `mySymbolKey`.'
    // ---------^^^^^^^^^^^^ ---------^^^^^^^^^^^^

    myObject[symbolObject] = 'value overwritten by `symbolObject`.';
    // ^^^^^^^^^^^^

    console.log({ myObject }); // { "myObject": { "foo": "Foo", Symbol(key): "value overwritten by `symbolObject`." } }
    console.log('myObject[mySymbolKey] ...', myObject[mySymbolKey]); // 'value overwritten by `symbolObject`.'
    // ---------^^^^^^^^^^^ ---------^^^^^^^^^^^

    This demonstrates that, although the primitive symbol and its boxed object are not strictly equal (===), their loose equality (==) is enough for them to act as interchangeable property keys.