Получите описание символа ES6 Интересно, есть ли хороший способ получить описания Символа. Например, var s = Symbol(5); Реализация toString по умолчанию будет просто печатать Символ (5) Я хотел бы найти способ извлечь фактическое описание, т.е. 5 Ответ 1 String(symbol).slice(7, -1) || null Это работает, потому что String(symbol) явно принуждает символ к строке, например. Symbol('test') принуждается к "Symbol(test)". Выполнение сплайсинга от 7 до -1 делает сплайсинг между двумя скобками, таким образом, записывая описание test Примечание: это может не работать для описания объектов (например, Symbol({test})), поскольку объекты принудительно вставляются в "[object Object]" Ответ 2 Нет никакого опрятного способа сделать это. Однако, если вы зарегистрировали символ в глобальном реестре, вы можете использовать Symbol.keyFor(): var s = Symbol.for(5); console.log(Symbol.keyFor(s)); Ответ 3 symbol-description пакет на npm Возвращает описание предоставленного символа: const symDesc = require('symbol-description') symDesc(Symbol('foo')) // foo Он был опубликован мной только сейчас после чтения этого ответа здесь. Ответ 4 Symbol.description возвращает описание символа REF: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description Как насчет использования s.description в вашем случае
Ответ 1 String(symbol).slice(7, -1) || null Это работает, потому что String(symbol) явно принуждает символ к строке, например. Symbol('test') принуждается к "Symbol(test)". Выполнение сплайсинга от 7 до -1 делает сплайсинг между двумя скобками, таким образом, записывая описание test Примечание: это может не работать для описания объектов (например, Symbol({test})), поскольку объекты принудительно вставляются в "[object Object]"
Ответ 2 Нет никакого опрятного способа сделать это. Однако, если вы зарегистрировали символ в глобальном реестре, вы можете использовать Symbol.keyFor(): var s = Symbol.for(5); console.log(Symbol.keyFor(s));
Ответ 3 symbol-description пакет на npm Возвращает описание предоставленного символа: const symDesc = require('symbol-description') symDesc(Symbol('foo')) // foo Он был опубликован мной только сейчас после чтения этого ответа здесь.
Ответ 4 Symbol.description возвращает описание символа REF: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description Как насчет использования s.description в вашем случае