isPropertyKey

Test whether a value is a property key.

Usage

var isPropertyKey = require( '@stdlib/assert/is-property-key' );

isPropertyKey( value )

Tests whether a value is a property key.

var bool = isPropertyKey( 'beep' );
// returns true

bool = isPropertyKey( 3.14 );
// returns false

Notes

  • A valid property key is either a string, symbol, or a nonnegative integer. For example, 'beep', Symbol( 'beep' ), and 3 are all valid property keys.
  • Only primitive values are considered to be valid property keys. This excludes object wrappers such as new String( 'beep' ).

Examples

var Symbol = require( '@stdlib/symbol/ctor' );
var hasSymbolSupport = require( '@stdlib/assert/has-symbol-support' );
var isPropertyKey = require( '@stdlib/assert/is-property-key' );

var hasSymbols = hasSymbolSupport();
var bool = isPropertyKey( 'beep' );
// returns true

if ( hasSymbols ) {
    bool = isPropertyKey( Symbol( 'beep' ) );
    // returns true
} else {
    console.log( 'Environment does not support symbols.' );
}

bool = isPropertyKey( 37 );
// returns true

bool = isPropertyKey( {} );
// returns false

bool = isPropertyKey( [] );
// returns false
Did you find this page helpful?