Перейти к основному содержимому

`Symbol.prototype.description`

· 1 мин. чтения
Mathias Bynens ([@mathias](https://twitter.com/mathias))

В 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;
// → undefined

Поддержка Symbol.prototype.description