JavaScript の Symbol には、作成時に説明を与えることができます
const symbol = Symbol('foo');
//                    ^^^^^以前は、この説明にプログラムでアクセスする唯一の方法は、Symbol.prototype.toString() を間接的に使用することでした
const symbol = Symbol('foo');
//                    ^^^^^
symbol.toString();
// → 'Symbol(foo)'
//           ^^^
symbol.toString().slice(7, -1); // 🤔
// → 'foo'しかし、そのコードは少し不思議なように見え、あまり自己説明的ではなく、「実装ではなく明示的な目的」という原則に違反します。また、上記のテクニックでは、説明のないシンボル(つまり Symbol())と、空の文字列を説明とするシンボル(つまり Symbol(''))を区別できません。
新しい Symbol.prototype.description ゲッター は、Symbol の説明にアクセスするためのより人間工学的な方法を提供します
const symbol = Symbol('foo');
//                    ^^^^^
symbol.description;
// → 'foo'説明のない Symbol の場合、このゲッターは undefined を返します
const symbol = Symbol();
symbol.description;
// → undefinedSymbol.prototype.description サポート #
- Chrome: バージョン 70 以降でサポート
- Firefox: バージョン 63 以降でサポート
- Safari: バージョン 12.1 以降でサポート
- Node.js: バージョン 12 以降でサポート
- Babel: サポート済み