Javascript ES6 Symbol Type code examples | Typescript
- Admin
- Nov 29, 2023
- Es6 Javascript Typescript
In this tutorial, We will have a look into learn the Symbol Primitive Data type basics with examples.
Javascript ES6 Symbol Datatype
The symbol is a primitive data type introduced with ES6
or ECMAScript 2015
in javascript. Typescript also supports this Symbol
as a Primitive data type similar to String, number, and Boolean.
- The symbol is a special primitive type that represents Unique values or keys of an object.
- It is used to identify unique objects with symbols object.
- Symbol variables always return a new unique value
All the above examples will work in javascript and typescript
How to create and initialize Symbol
Symbol
object is created as follows.
It creates unique name value for every object creation.
Empty Symbol is created by Symbol()
constructor.
var symboleObj = Symbol();
console.log(symboleObj); //Symbol()
console.log(typeof symboleObj); //symbol
And also, Can supply the key to Symbol
Function as seen below example
var symboleObj1 = Symbol("keyhere");
console.log(symboleObj1); //Symbol(keyhere)
How to compare Symbols for Unique in javascript?
Same Symbol with the same key always return same values, The objects with same value returns true.
using ==
checks and returns true.
let symboleObj1 = Symbol("s1");
let symboleObj2 = Symbol("s1");
console.log(symboleObj1 == symboleObj2); //false
How to use Key as a Symbol in Object
Symbols
can be stored in the object as a key. And value can be retrieved as normal keys. Object.keys
and Object.getOwnPropertyNames
will not get the Symbol Keys, meaning Keys are not iterable in for...in
, for..of
the iteration process
.
Hence, To retrieve symbol keys, Object.getOwnPropertySymbols
is be used.
var symboleObj = Symbol();
let myObject = {
[symboleObj]: "myvalue",
key1: "value1",
};
console.log(myObject); //Object Symbol(): "myvalue"
console.log(myObject[symboleObj]); //myvalue
console.log(Object.keys(myObject)); // return [ 'key1' ]
console.log(Object.getOwnPropertyNames(myObject)); // return [ 'key1' ]
console.log(Object.getOwnPropertySymbols(myObject)); // return [ Symbol() ]
How to Convert Symbol to String in javascript Es6
toString()
method returns the String version of Symbol Object.
It also convert to String
using String(symboleObj)
.
if you use new String(symboleObj) - It throws ’Uncaught TypeError: Cannot convert a Symbol value to a string’
var symboleObj = Symbol();
console.log(String(symboleObj)); //myvalue
console.log(symboleObj.toString()); //myvalue
How to Convert Symbol to Boolean in javascript Es6?
Pass Symbol
object to Boolean
Class, always returns true. Can also be used with !
not operator to return false.
var symboleObj = Symbol(123);
console.log(new Boolean(symboleObj)); //true
console.log(!symboleObj); //false
Symbol for method example
Each symbol is created, registered in the global scope.
for() method
takes input string - a description which searches global scope for Symbols
for the given description and returns the Symbol.
let test = Symbol.for("test");
console.log(test === test); // true
How to Convert Symbol to Number In javascript
To convert Symbol to number in javascript, Please follow below steps.
- use Number Constructor with give symbole object
- if the same code is used for Number like new Number(symboleObj), it gives compilation Error: Cannot convert a Symbol value to a number
- Pass different values to avoid the error
Javascript Es6 Pre builtin Symbols
Javascript and typescript defined native symbols as part of the language. Symbol.iterator Example This returns the iteration for an object which can be used for loop syntax. Here is an example of String’s iteration of an object
interface IIterationString {
[Symbol.iterator](): IterableIterator;
}
class StringIteration implements IIterationString {
private strings = ['one', 'two', 'three'];
constructor() {}
*[Symbol.iterator]() {
for(let ss of this.strings) {
yield ss;
}
}
}
for(let elem of (new StringIteration())) {
console.log(elem); // returns one two three
}