Тип символу TypeScript і як ним користуватися

Тип Symbol у TypeScript є унікальним і незмінним примітивним типом, представленим у ES6. Символи часто використовуються як ключі властивостей об’єктів, щоб переконатися, що властивості є унікальними та випадково не перезаписують одне одного. Це особливо корисно в сценаріях, коли властивості об’єктів потрібно використовувати як константи, але вони мають бути унікальними та неперерахованими.

Створення символів

Для створення символу використовується функція Symbol. Кожного разу, коли викликається Symbol, створюється новий унікальний символ.

const uniqueSymbol = Symbol('description');
const anotherSymbol = Symbol('description'); // This is a different symbol, even if the description is the same

Використання символів як ключів об’єктів

Символи можна використовувати як ключі для властивостей об’єктів. Це забезпечує унікальність імен властивостей і запобігає випадковим зіткненням з іншими властивостями.

const mySymbol = Symbol('mySymbol');

const myObject = {
  [mySymbol]: 'value'
};

console.log(myObject[mySymbol]); // Outputs: value

Symbol.for і Symbol.keyFor

Метод Symbol.for створює або отримує глобальний символ за заданим ключем. Це може бути корисним для спільного використання символів у різних частинах програми. Метод Symbol.keyFor повертає ключ, пов’язаний із глобальним символом.

const globalSymbol = Symbol.for('globalSymbol');
const sameGlobalSymbol = Symbol.for('globalSymbol'); // Retrieves the same symbol

console.log(globalSymbol === sameGlobalSymbol); // Outputs: true

const symbolKey = Symbol.keyFor(globalSymbol);
console.log(symbolKey); // Outputs: 'globalSymbol'

Висновок

Тип Symbol у TypeScript надає потужний механізм для створення унікальних ключів властивостей, які можуть допомогти запобігти конфліктам імен властивостей і забезпечити більш надійний код, який можна підтримувати. Розуміючи та використовуючи символи, розробники можуть краще керувати властивостями об’єктів та їх унікальністю в програмі TypeScript.