javascript - Obtenga la descripción de un símbolo ES6
symbols ecmascript-6 (4)
paquete de
symbol-description
de símbolos en npm
Devuelve la descripción del símbolo proporcionado:
const symDesc = require(''symbol-description'')
symDesc(Symbol(''foo'')) // foo
Fue publicado por mí justo ahora después de leer esta respuesta aquí .
Me pregunto si hay una buena manera de obtener las descripciones de un símbolo.
Por ejemplo,
var s = Symbol(5);
La implementación predeterminada de toString simplemente imprimirá Symbol (5)
Me gustaría encontrar una manera de extraer la descripción real, es decir, 5
No hay una forma ordenada de hacer esto.
Sin embargo, si ha registrado un símbolo en el registro global, puede usar
Symbol.keyFor()
:
var s = Symbol.for(5);
console.log(Symbol.keyFor(s));
Symbol.description
devuelve la descripción del símbolo.
Simplemente haga la descripción en su caso.
String(symbol).slice(7, -1) || null
Esto funciona porque
String(symbol)
coacciona explícitamente el símbolo en una cadena, por ejemplo,
Symbol(''test'')
convierte en
"Symbol(test)"
.
Hacer un empalme en el 7 al -1 hace un empalme entre los dos soportes, capturando así la
test
descripción
Nota
: es posible que esto no funcione para descripciones de objetos (p. Ej.,
Symbol({test})
) ya que los objetos se convierten en
"[object Object]"